When compiling with -Wformat, clang warns: fs/afs/flock.c:632:29: warning: format specifies type 'short' but the argument has type 'unsigned char' [-Wformat] _leave(" = %d [%hd]", ret, fl->fl_type); ~~~ ^~~~~~~~~~~
fs/afs/dir.c:138:11: warning: format specifies type 'unsigned short' but the argument has type 'int' [-Wformat] ntohs(dbuf->blocks[tmp].hdr.magic)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fl_type is declared as an unsigned char unconditionally in include/linux/fs.h, so use the correct format characters. Link: https://github.com/ClangBuiltLinux/linux/issues/378 Signed-off-by: Louis Taylor <lo...@kragniz.eu> --- fs/afs/dir.c | 2 +- fs/afs/flock.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 8a2562e3a316..4ceaec94e9c5 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -133,7 +133,7 @@ static bool afs_dir_check_page(struct afs_vnode *dvnode, struct page *page, dbuf = kmap(page); for (tmp = 0; tmp < qty; tmp++) { if (dbuf->blocks[tmp].hdr.magic != AFS_DIR_MAGIC) { - printk("kAFS: %s(%lx): bad magic %d/%d is %04hx\n", + printk("kAFS: %s(%lx): bad magic %d/%d is %04x\n", __func__, dvnode->vfs_inode.i_ino, tmp, qty, ntohs(dbuf->blocks[tmp].hdr.magic)); trace_afs_dir_check_failed(dvnode, off, i_size); diff --git a/fs/afs/flock.c b/fs/afs/flock.c index 6a0174258382..be4c3f6a3178 100644 --- a/fs/afs/flock.c +++ b/fs/afs/flock.c @@ -629,7 +629,7 @@ static int afs_do_getlk(struct file *file, struct file_lock *fl) ret = 0; error: - _leave(" = %d [%hd]", ret, fl->fl_type); + _leave(" = %d [%hhu]", ret, fl->fl_type); return ret; } -- 2.21.0