On Wed, 2025-09-03 at 15:58 +0800, Yangtao Li wrote: > Hi Slava, > > 在 2025/8/15 03:34, Viacheslav Dubeyko 写道: > > Currently, HFS/HFS+ has very obsolete and inconvenient > > debug output subsystem. Also, the code is duplicated > > in HFS and HFS+ driver. This patch introduces > > linux/hfs_common.h for gathering common declarations, > > inline functions, and common short methods. Currently, > > this file contains only hfs_dbg() function that > > employs pr_debug() with the goal to print a debug-level > > messages conditionally. > > > > So, now, it is possible to enable the debug output > > by means of: > > > > echo 'file extent.c +p' > /proc/dynamic_debug/control > > echo 'func hfsplus_evict_inode +p' > /proc/dynamic_debug/control > > > > And debug output looks like this: > > > > hfs: pid 5831:fs/hfs/catalog.c:228 hfs_cat_delete(): delete_cat: > > 00,48 > > hfs: pid 5831:fs/hfs/extent.c:484 hfs_file_truncate(): truncate: > > 48, 409600 -> 0 > > hfs: pid 5831:fs/hfs/extent.c:212 hfs_dump_extent(): > > hfs: pid 5831:fs/hfs/extent.c:214 hfs_dump_extent(): 78:4 > > hfs: pid 5831:fs/hfs/extent.c:214 hfs_dump_extent(): 0:0 > > hfs: pid 5831:fs/hfs/extent.c:214 hfs_dump_extent(): 0:0 > > > > v4 > > Debug messages have been reworked and information about > > new HFS/HFS+ shared declarations file has been added > > to MAINTAINERS file. > > > > Signed-off-by: Viacheslav Dubeyko <slava@xxxxxxxxxxx> > > cc: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx> > > cc: Yangtao Li <frank.li@xxxxxxxx> > > cc: linux-fsdevel@xxxxxxxxxxxxxxx > > cc: Johannes Thumshirn <Johannes.Thumshirn@xxxxxxx> > > --- > > MAINTAINERS | 2 ++ > > fs/hfs/bfind.c | 4 ++-- > > fs/hfs/bitmap.c | 4 ++-- > > fs/hfs/bnode.c | 28 ++++++++++++++-------------- > > fs/hfs/brec.c | 8 ++++---- > > fs/hfs/btree.c | 2 +- > > fs/hfs/catalog.c | 6 +++--- > > fs/hfs/extent.c | 19 ++++++++++--------- > > fs/hfs/hfs_fs.h | 33 +-------------------------------- > > fs/hfs/inode.c | 4 ++-- > > fs/hfsplus/attributes.c | 8 ++++---- > > fs/hfsplus/bfind.c | 4 ++-- > > fs/hfsplus/bitmap.c | 10 +++++----- > > fs/hfsplus/bnode.c | 28 ++++++++++++++-------------- > > fs/hfsplus/brec.c | 10 +++++----- > > fs/hfsplus/btree.c | 4 ++-- > > fs/hfsplus/catalog.c | 6 +++--- > > fs/hfsplus/extents.c | 25 +++++++++++++------------ > > fs/hfsplus/hfsplus_fs.h | 35 +-------------------------------- > > -- > > fs/hfsplus/super.c | 17 +++++++++++++---- > > fs/hfsplus/xattr.c | 4 ++-- > > include/linux/hfs_common.h | 20 ++++++++++++++++++++ > > 22 files changed, 125 insertions(+), 156 deletions(-) > > create mode 100644 include/linux/hfs_common.h > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index fe168477caa4..12ce20812f6c 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -10793,6 +10793,7 @@ L: linux-fsdevel@xxxxxxxxxxxxxxx > > S: Maintained > > F: Documentation/filesystems/hfs.rst > > F: fs/hfs/ > > +F: include/linux/hfs_common.h > > > > HFSPLUS FILESYSTEM > > M: Viacheslav Dubeyko <slava@xxxxxxxxxxx> > > @@ -10802,6 +10803,7 @@ L: linux-fsdevel@xxxxxxxxxxxxxxx > > S: Maintained > > F: Documentation/filesystems/hfsplus.rst > > F: fs/hfsplus/ > > +F: include/linux/hfs_common.h > > > > HGA FRAMEBUFFER DRIVER > > M: Ferenc Bakonyi <fero@xxxxxxxxxxxxxxxxxxxx> > > diff --git a/fs/hfs/bfind.c b/fs/hfs/bfind.c > > index 34e9804e0f36..d23e634657bd 100644 > > --- a/fs/hfs/bfind.c > > +++ b/fs/hfs/bfind.c > > @@ -26,7 +26,7 @@ int hfs_find_init(struct hfs_btree *tree, struct > > hfs_find_data *fd) > > return -ENOMEM; > > fd->search_key = ptr; > > fd->key = ptr + tree->max_key_len + 2; > > - hfs_dbg(BNODE_REFS, "find_init: %d (%p)\n", > > + hfs_dbg("tree: CNID %d, caller %p\n", > > I'm kinda confused about uppercase and lowercase here. > > Why use CNID instead of cnid? I don't see principal difference between uppercase and lowercase. However, it's abbreviation Catalog Node ID (CNID). So, uppercase looks like more natural. > > Since ',' aleardy act as identify for cnid and caller, > Could we drop ':'? The ':' point out that we showing info for tree and we have tree's items further; tree: CNID 1, caller <some_info_here> So, it looks pretty not bad for my taste. :) Otherwise, we need to drop "tree:" completely. > > And let's use %ps so we get func name? > We can do this. > [ 62.792107] hfs: pid 1023:fs/hfs/bfind.c:52 hfs_find_exit(): tree: > CNID 4, caller 00000000b667808d > [ 62.793808] hfs: pid 1023:fs/hfs/bfind.c:30 hfs_find_init(): tree: > CNID 4, caller hfs_lookup > > + hfs_dbg("tree cnid %d, caller %ps\n", > > > > tree->cnid, __builtin_return_address(0)); > > switch (tree->cnid) { > > case HFS_CAT_CNID: > > @@ -48,7 +48,7 @@ void hfs_find_exit(struct hfs_find_data *fd) > > { > > hfs_bnode_put(fd->bnode); > > kfree(fd->search_key); > > - hfs_dbg(BNODE_REFS, "find_exit: %d (%p)\n", > > + hfs_dbg("tree: CNID %d, caller %p\n", > > Ditto. Please, see my answers above. > > > fd->tree->cnid, __builtin_return_address(0)); > > mutex_unlock(&fd->tree->tree_lock); > > fd->tree = NULL; > > diff --git a/fs/hfs/bitmap.c b/fs/hfs/bitmap.c > > index 28307bc9ec1e..fae26bd10311 100644 > > --- a/fs/hfs/bitmap.c > > +++ b/fs/hfs/bitmap.c > > @@ -158,7 +158,7 @@ u32 hfs_vbm_search_free(struct super_block *sb, > > u32 goal, u32 *num_bits) > > } > > } > > > > - hfs_dbg(BITMAP, "alloc_bits: %u,%u\n", pos, *num_bits); > > + hfs_dbg("RANGE: pos %u, num_bits %u\n", pos, *num_bits); > > We drop all those: > > -#define DBG_BNODE_REFS 0x00000001 > -#define DBG_BNODE_MOD 0x00000002 > -#define DBG_CAT_MOD 0x00000004 > -#define DBG_INODE 0x00000008 > -#define DBG_SUPER 0x00000010 > -#define DBG_EXTENT 0x00000020 > -#define DBG_BITMAP 0x00000040 > -#define DBG_ATTR_MOD 0x00000080 > > Not sure, why we need RANGE... The [pos, num_bits] sounds like a range. Not? > > + hfs_dbg("pos %u, num_bits %u\n", pos, *num_bits); > > > HFS_SB(sb)->free_ablocks -= *num_bits; > > hfs_bitmap_dirty(sb); > > out: > > @@ -200,7 +200,7 @@ int hfs_clear_vbm_bits(struct super_block *sb, > > u16 start, u16 count) > > if (!count) > > return 0; > > > > - hfs_dbg(BITMAP, "clear_bits: %u,%u\n", start, count); > > + hfs_dbg("RANGE: start %u, count %u\n", start, count); > > Ditto. The [pos, num_bits] sounds like a range. Not? > > > /* are all of the bits in range? */ > > if ((start + count) > HFS_SB(sb)->fs_ablocks) > > return -2; > > diff --git a/fs/hfs/bnode.c b/fs/hfs/bnode.c > > index e8cd1a31f247..b2920a1c6943 100644 > > --- a/fs/hfs/bnode.c > > +++ b/fs/hfs/bnode.c > > @@ -200,7 +200,7 @@ void hfs_bnode_copy(struct hfs_bnode *dst_node, > > int dst, > > { > > struct page *src_page, *dst_page; > > > > - hfs_dbg(BNODE_MOD, "copybytes: %u,%u,%u\n", dst, src, > > len); > > + hfs_dbg("copybytes: dst %u, src %u, len %u\n", dst, src, > > len); > > remove 'copybytes:' ? We can do this. > > > if (!len) > > return; > > > > @@ -221,7 +221,7 @@ void hfs_bnode_move(struct hfs_bnode *node, int > > dst, int src, int len) > > struct page *page; > > void *ptr; > > > > - hfs_dbg(BNODE_MOD, "movebytes: %u,%u,%u\n", dst, src, > > len); > > + hfs_dbg("movebytes: dst %u, src %u, len %u\n", dst, src, > > len); > > Ditto. We can do this. > > > > if (!len) > > return; > > > > @@ -243,16 +243,16 @@ void hfs_bnode_dump(struct hfs_bnode *node) > > __be32 cnid; > > int i, off, key_off; > > > > - hfs_dbg(BNODE_MOD, "bnode: %d\n", node->this); > > + hfs_dbg("node_id %d\n", node->this); > > hfs_bnode_read(node, &desc, 0, sizeof(desc)); > > - hfs_dbg(BNODE_MOD, "%d, %d, %d, %d, %d\n", > > + hfs_dbg("next %d, prev %d, type %d, height %d, num_recs > > %d\n", > > be32_to_cpu(desc.next), be32_to_cpu(desc.prev), > > desc.type, desc.height, > > be16_to_cpu(desc.num_recs)); > > > > off = node->tree->node_size - 2; > > for (i = be16_to_cpu(desc.num_recs); i >= 0; off -= 2, i-- > > ) { > > key_off = hfs_bnode_read_u16(node, off); > > - hfs_dbg_cont(BNODE_MOD, " %d", key_off); > > + hfs_dbg(" key_off %d", key_off); > > if (i && node->type == HFS_NODE_INDEX) { > > int tmp; > > > > @@ -260,18 +260,18 @@ void hfs_bnode_dump(struct hfs_bnode *node) > > tmp = (hfs_bnode_read_u8(node, > > key_off) | 1) + 1; > > else > > tmp = node->tree->max_key_len + 1; > > - hfs_dbg_cont(BNODE_MOD, " (%d,%d", > > - tmp, hfs_bnode_read_u8(node, > > key_off)); > > + hfs_dbg(" (%d,%d", > > + tmp, hfs_bnode_read_u8(node, > > key_off)); > > Could we describe those information? I have no idea how to change this. What is your suggestion? > > > hfs_bnode_read(node, &cnid, key_off + tmp, > > 4); > > - hfs_dbg_cont(BNODE_MOD, ",%d)", > > be32_to_cpu(cnid)); > > + hfs_dbg(", cnid %d)", be32_to_cpu(cnid)); > > } else if (i && node->type == HFS_NODE_LEAF) { > > int tmp; > > > > tmp = hfs_bnode_read_u8(node, key_off); > > - hfs_dbg_cont(BNODE_MOD, " (%d)", tmp); > > + hfs_dbg(" (%d)", tmp); > > Ditto. What is your suggestion? > > > } > > } > > - hfs_dbg_cont(BNODE_MOD, "\n"); > > + hfs_dbg("\n"); > > } > > > > void hfs_bnode_unlink(struct hfs_bnode *node) > > @@ -361,7 +361,7 @@ static struct hfs_bnode > > *__hfs_bnode_create(struct hfs_btree *tree, u32 cnid) > > node->this = cnid; > > set_bit(HFS_BNODE_NEW, &node->flags); > > atomic_set(&node->refcnt, 1); > > - hfs_dbg(BNODE_REFS, "new_node(%d:%d): 1\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt 1\n", > > node->tree->cnid, node->this); > > init_waitqueue_head(&node->lock_wq); > > spin_lock(&tree->hash_lock); > > @@ -401,7 +401,7 @@ void hfs_bnode_unhash(struct hfs_bnode *node) > > { > > struct hfs_bnode **p; > > > > - hfs_dbg(BNODE_REFS, "remove_node(%d:%d): %d\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt %d\n", > > node->tree->cnid, node->this, atomic_read(&node- > > >refcnt)); > > for (p = &node->tree->node_hash[hfs_bnode_hash(node- > > >this)]; > > *p && *p != node; p = &(*p)->next_hash) > > @@ -546,7 +546,7 @@ void hfs_bnode_get(struct hfs_bnode *node) > > { > > if (node) { > > atomic_inc(&node->refcnt); > > - hfs_dbg(BNODE_REFS, "get_node(%d:%d): %d\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt %d\n", > > node->tree->cnid, node->this, > > atomic_read(&node->refcnt)); > > } > > @@ -559,7 +559,7 @@ void hfs_bnode_put(struct hfs_bnode *node) > > struct hfs_btree *tree = node->tree; > > int i; > > > > - hfs_dbg(BNODE_REFS, "put_node(%d:%d): %d\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt %d\n", > > node->tree->cnid, node->this, > > atomic_read(&node->refcnt)); > > BUG_ON(!atomic_read(&node->refcnt)); > > diff --git a/fs/hfs/brec.c b/fs/hfs/brec.c > > index 896396554bcc..195405f0ab5c 100644 > > --- a/fs/hfs/brec.c > > +++ b/fs/hfs/brec.c > > @@ -94,7 +94,7 @@ int hfs_brec_insert(struct hfs_find_data *fd, > > void *entry, int entry_len) > > end_rec_off = tree->node_size - (node->num_recs + 1) * 2; > > end_off = hfs_bnode_read_u16(node, end_rec_off); > > end_rec_off -= 2; > > - hfs_dbg(BNODE_MOD, "insert_rec: %d, %d, %d, %d\n", > > + hfs_dbg("RECORD: rec %d, size %d, end_off %d, end_rec_off > > %d\n", > > > We drop all those: > > -#define DBG_BNODE_REFS 0x00000001 > -#define DBG_BNODE_MOD 0x00000002 > -#define DBG_CAT_MOD 0x00000004 > -#define DBG_INODE 0x00000008 > -#define DBG_SUPER 0x00000010 > -#define DBG_EXTENT 0x00000020 > -#define DBG_BITMAP 0x00000040 > -#define DBG_ATTR_MOD 0x00000080 > > Not sure, why we need RECORD... Because, we shows record's details here. :) > > + hfs_dbg("rec %d, size %d, end_off %d, end_rec_off %d\n", > > > rec, size, end_off, end_rec_off); > > if (size > end_rec_off - end_off) { > > if (new_node) > > @@ -191,7 +191,7 @@ int hfs_brec_remove(struct hfs_find_data *fd) > > mark_inode_dirty(tree->inode); > > } > > hfs_bnode_dump(node); > > - hfs_dbg(BNODE_MOD, "remove_rec: %d, %d\n", > > + hfs_dbg("RECORD: rec %d, len %d\n", > > Dotto. Because, we shows record's details here. :) > > > fd->record, fd->keylength + fd->entrylength); > > if (!--node->num_recs) { > > hfs_bnode_unlink(node); > > @@ -242,7 +242,7 @@ static struct hfs_bnode *hfs_bnode_split(struct > > hfs_find_data *fd) > > if (IS_ERR(new_node)) > > return new_node; > > hfs_bnode_get(node); > > - hfs_dbg(BNODE_MOD, "split_nodes: %d - %d - %d\n", > > + hfs_dbg("NODES: this %d, new %d, next %d\n", > > Dotto. Because, we shows nodes' details here. :) > > > node->this, new_node->this, node->next); > > new_node->next = node->next; > > new_node->prev = node->this; > > @@ -378,7 +378,7 @@ static int hfs_brec_update_parent(struct > > hfs_find_data *fd) > > newkeylen = (hfs_bnode_read_u8(node, 14) | 1) + 1; > > else > > fd->keylength = newkeylen = tree->max_key_len + 1; > > - hfs_dbg(BNODE_MOD, "update_rec: %d, %d, %d\n", > > + hfs_dbg("RECORD: rec %d, keylength %d, newkeylen %d\n", > > Ditto. Because, we shows record's details here. :) > > > rec, fd->keylength, newkeylen); > > > > rec_off = tree->node_size - (rec + 2) * 2; > > diff --git a/fs/hfs/btree.c b/fs/hfs/btree.c > > index e86e1e235658..9f0f1372a5c3 100644 > > --- a/fs/hfs/btree.c > > +++ b/fs/hfs/btree.c > > @@ -364,7 +364,7 @@ void hfs_bmap_free(struct hfs_bnode *node) > > u32 nidx; > > u8 *data, byte, m; > > > > - hfs_dbg(BNODE_MOD, "btree_free_node: %u\n", node->this); > > + hfs_dbg("node_id %u\n", node->this); > > node id? We can do this. But I don't see principal difference here. > > > tree = node->tree; > > nidx = node->this; > > node = hfs_bnode_find(tree, 0); > > diff --git a/fs/hfs/catalog.c b/fs/hfs/catalog.c > > index d63880e7d9d6..28f3fbf586e5 100644 > > --- a/fs/hfs/catalog.c > > +++ b/fs/hfs/catalog.c > > @@ -87,7 +87,7 @@ int hfs_cat_create(u32 cnid, struct inode *dir, > > const struct qstr *str, struct i > > int entry_size; > > int err; > > > > - hfs_dbg(CAT_MOD, "create_cat: %s,%u(%d)\n", > > + hfs_dbg("entry: name %s, cnid %u, i_nlink %d\n", > > 'entry: ' is redundant... Maybe yes, maybe not. We show entry details here. > > + hfs_dbg("name %s, cnid %u, i_nlink %d\n", > > > str->name, cnid, inode->i_nlink); > > if (dir->i_size >= HFS_MAX_VALENCE) > > return -ENOSPC; > > @@ -225,7 +225,7 @@ int hfs_cat_delete(u32 cnid, struct inode *dir, > > const struct qstr *str) > > struct hfs_readdir_data *rd; > > int res, type; > > > > - hfs_dbg(CAT_MOD, "delete_cat: %s,%u\n", str ? str->name : > > NULL, cnid); > > + hfs_dbg("entry: name %s, cnid %u\n", str ? str->name : > > NULL, cnid); > > Ditto. Maybe yes, maybe not. We show entry details here. > > > sb = dir->i_sb; > > res = hfs_find_init(HFS_SB(sb)->cat_tree, &fd); > > if (res) > > @@ -294,7 +294,7 @@ int hfs_cat_move(u32 cnid, struct inode > > *src_dir, const struct qstr *src_name, > > int entry_size, type; > > int err; > > > > - hfs_dbg(CAT_MOD, "rename_cat: %u - %lu,%s - %lu,%s\n", > > + hfs_dbg("CNID %u - entry1(ino %lu, name %s) - entry2(ino > > %lu, name %s)\n", > > hfs_dbg("cnid %u -(ino %lu, name %s) -> (ino %lu, name %s)\n", ? > > > cnid, src_dir->i_ino, src_name->name, > > dst_dir->i_ino, dst_name->name); > > sb = src_dir->i_sb; > > diff --git a/fs/hfs/extent.c b/fs/hfs/extent.c > > index 580c62981dbd..c4d6ae796a3c 100644 > > --- a/fs/hfs/extent.c > > +++ b/fs/hfs/extent.c > > @@ -209,12 +209,12 @@ static void hfs_dump_extent(struct hfs_extent > > *extent) > > { > > int i; > > > > - hfs_dbg(EXTENT, " "); > > + hfs_dbg("EXTENT: "); > > Uppercase is kinda stange. > I don't know. It looks natural to me. :) > + hfs_dbg("extent: "); ? > > > for (i = 0; i < 3; i++) > > - hfs_dbg_cont(EXTENT, " %u:%u", > > - be16_to_cpu(extent[i].block), > > - be16_to_cpu(extent[i].count)); > > - hfs_dbg_cont(EXTENT, "\n"); > > + hfs_dbg(" block %u, count %u", > > + be16_to_cpu(extent[i].block), > > + be16_to_cpu(extent[i].count)); > > + hfs_dbg("\n"); > > } > > > > static int hfs_add_extent(struct hfs_extent *extent, u16 offset, > > @@ -411,10 +411,11 @@ int hfs_extend_file(struct inode *inode) > > goto out; > > } > > > > - hfs_dbg(EXTENT, "extend %lu: %u,%u\n", inode->i_ino, > > start, len); > > + hfs_dbg("ino %lu: start %u, len %u\n", inode->i_ino, > > start, len); > > ':' -> ',' ? I used ':' here because start and len is for inode ID. But it is possible to use ',' too. > > + hfs_dbg("ino %lu, start %u, len %u\n", inode->i_ino, start, > len); > > > if (HFS_I(inode)->alloc_blocks == HFS_I(inode)- > > >first_blocks) { > > if (!HFS_I(inode)->first_blocks) { > > - hfs_dbg(EXTENT, "first extents\n"); > > + hfs_dbg("first_extents[0]: start %u, len > > %u\n", > > > s/first_extents[0]:/first_extents ? We show only first extent of the array here. > > + hfs_dbg("first_extents start %u, len %u\n", > > > + start, len); > > /* no extents yet */ > > HFS_I(inode)->first_extents[0].block = > > cpu_to_be16(start); > > HFS_I(inode)->first_extents[0].count = > > cpu_to_be16(len); > > @@ -456,7 +457,7 @@ int hfs_extend_file(struct inode *inode) > > return res; > > > > insert_extent: > > - hfs_dbg(EXTENT, "insert new extent\n"); > > + hfs_dbg("insert new extent\n"); > > res = hfs_ext_write_extent(inode); > > if (res) > > goto out; > > @@ -481,7 +482,7 @@ void hfs_file_truncate(struct inode *inode) > > u32 size; > > int res; > > > > - hfs_dbg(INODE, "truncate: %lu, %Lu -> %Lu\n", > > + hfs_dbg("ino: %lu, phys_size %llu -> i_size %llu\n", > > + hfs_dbg("ino %lu, phys size %llu -> %llu\n", ? > > > inode->i_ino, (long long)HFS_I(inode)->phys_size, > > inode->i_size); > > if (inode->i_size > HFS_I(inode)->phys_size) { > > diff --git a/fs/hfs/hfs_fs.h b/fs/hfs/hfs_fs.h > > index 7c5a7ecfa246..9fbdd6a86f46 100644 > > --- a/fs/hfs/hfs_fs.h > > +++ b/fs/hfs/hfs_fs.h > > @@ -9,12 +9,6 @@ > > #ifndef _LINUX_HFS_FS_H > > #define _LINUX_HFS_FS_H > > > > -#ifdef pr_fmt > > -#undef pr_fmt > > -#endif > > - > > -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > > - > > #include <linux/slab.h> > > #include <linux/types.h> > > #include <linux/mutex.h> > > @@ -24,35 +18,10 @@ > > > > #include <asm/byteorder.h> > > #include <linux/uaccess.h> > > +#include <linux/hfs_common.h> > > Alph sort? It's not about alphabetical sorting. It's about dependencies of declarations. The hfs_common.h should be after any other system related declarations. > > #include <asm/byteorder.h> > +#include <linux/hfs_common.h> > #include <linux/uaccess.h> > > > > > > #include "hfs.h" > > > > -#define DBG_BNODE_REFS 0x00000001 > > -#define DBG_BNODE_MOD 0x00000002 > > -#define DBG_CAT_MOD 0x00000004 > > -#define DBG_INODE 0x00000008 > > -#define DBG_SUPER 0x00000010 > > -#define DBG_EXTENT 0x00000020 > > -#define DBG_BITMAP 0x00000040 > > - > > -//#define > > DBG_MASK (DBG_EXTENT|DBG_INODE|DBG_BNODE_MOD|DBG_CAT_MOD|DBG_BITMAP) > > -//#define DBG_MASK (DBG_BNODE_MOD|DBG_CAT_MOD|DBG_INODE) > > -//#define > > DBG_MASK (DBG_CAT_MOD|DBG_BNODE_REFS|DBG_INODE|DBG_EXTENT) > > -#define DBG_MASK (0) > > - > > -#define hfs_dbg(flg, fmt, ...) \ > > -do { \ > > - if (DBG_##flg & DBG_MASK) \ > > - printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \ > > -} while (0) > > - > > -#define hfs_dbg_cont(flg, fmt, ...) \ > > -do { \ > > - if (DBG_##flg & DBG_MASK) \ > > - pr_cont(fmt, ##__VA_ARGS__); \ > > -} while (0) > > - > > - > > /* > > * struct hfs_inode_info > > * > > diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c > > index bf4cb7e78396..983d537a25be 100644 > > --- a/fs/hfs/inode.c > > +++ b/fs/hfs/inode.c > > @@ -241,7 +241,7 @@ void hfs_delete_inode(struct inode *inode) > > { > > struct super_block *sb = inode->i_sb; > > > > - hfs_dbg(INODE, "delete_inode: %lu\n", inode->i_ino); > > + hfs_dbg("ino: %lu\n", inode->i_ino); > > remove ':' We can do it. > > > if (S_ISDIR(inode->i_mode)) { > > HFS_SB(sb)->folder_count--; > > if (HFS_I(inode)->cat_key.ParID == > > cpu_to_be32(HFS_ROOT_CNID)) > > @@ -425,7 +425,7 @@ int hfs_write_inode(struct inode *inode, struct > > writeback_control *wbc) > > hfs_cat_rec rec; > > int res; > > > > - hfs_dbg(INODE, "hfs_write_inode: %lu\n", inode->i_ino); > > + hfs_dbg("ino: %lu\n", inode->i_ino); > > Ditto. We can do it. > > > res = hfs_ext_write_extent(inode); > > if (res) > > return res; > > diff --git a/fs/hfsplus/attributes.c b/fs/hfsplus/attributes.c > > index eeebe80c6be4..914a06e48576 100644 > > --- a/fs/hfsplus/attributes.c > > +++ b/fs/hfsplus/attributes.c > > @@ -139,7 +139,7 @@ int hfsplus_find_attr(struct super_block *sb, > > u32 cnid, > > { > > int err = 0; > > > > - hfs_dbg(ATTR_MOD, "find_attr: %s,%d\n", name ? name : > > NULL, cnid); > > + hfs_dbg("name %s, cnid %d\n", name ? name : NULL, cnid); > > > > if (!HFSPLUS_SB(sb)->attr_tree) { > > pr_err("attributes file doesn't exist\n"); > > @@ -201,7 +201,7 @@ int hfsplus_create_attr(struct inode *inode, > > int entry_size; > > int err; > > > > - hfs_dbg(ATTR_MOD, "create_attr: %s,%ld\n", > > + hfs_dbg("name %s, ino %ld\n", > > name ? name : NULL, inode->i_ino); > > > > if (!HFSPLUS_SB(sb)->attr_tree) { > > @@ -310,7 +310,7 @@ int hfsplus_delete_attr(struct inode *inode, > > const char *name) > > struct super_block *sb = inode->i_sb; > > struct hfs_find_data fd; > > > > - hfs_dbg(ATTR_MOD, "delete_attr: %s,%ld\n", > > + hfs_dbg("name %s, ino %ld\n", > > name ? name : NULL, inode->i_ino); > > > > if (!HFSPLUS_SB(sb)->attr_tree) { > > @@ -356,7 +356,7 @@ int hfsplus_delete_all_attrs(struct inode *dir, > > u32 cnid) > > int err = 0; > > struct hfs_find_data fd; > > > > - hfs_dbg(ATTR_MOD, "delete_all_attrs: %d\n", cnid); > > + hfs_dbg("cnid: %d\n", cnid); > > Ditto. We can do it. > > > > > if (!HFSPLUS_SB(dir->i_sb)->attr_tree) { > > pr_err("attributes file doesn't exist\n"); > > diff --git a/fs/hfsplus/bfind.c b/fs/hfsplus/bfind.c > > index 901e83d65d20..1fe80ced03eb 100644 > > --- a/fs/hfsplus/bfind.c > > +++ b/fs/hfsplus/bfind.c > > @@ -23,7 +23,7 @@ int hfs_find_init(struct hfs_btree *tree, struct > > hfs_find_data *fd) > > return -ENOMEM; > > fd->search_key = ptr; > > fd->key = ptr + tree->max_key_len + 2; > > - hfs_dbg(BNODE_REFS, "find_init: %d (%p)\n", > > + hfs_dbg("CNID %d, caller %p\n", > > Ditto. Please, see my answers above. > > + hfs_dbg("cnid %d, caller %ps\n", ? > > > tree->cnid, __builtin_return_address(0)); > > mutex_lock_nested(&tree->tree_lock, > > hfsplus_btree_lock_class(tree)); > > @@ -34,7 +34,7 @@ void hfs_find_exit(struct hfs_find_data *fd) > > { > > hfs_bnode_put(fd->bnode); > > kfree(fd->search_key); > > - hfs_dbg(BNODE_REFS, "find_exit: %d (%p)\n", > > + hfs_dbg("CNID %d, caller %p\n", > > Reference to hfs. Please, see my answers above. > > > fd->tree->cnid, __builtin_return_address(0)); > > mutex_unlock(&fd->tree->tree_lock); > > fd->tree = NULL; > > diff --git a/fs/hfsplus/bitmap.c b/fs/hfsplus/bitmap.c > > index bd8dcea85588..461dac07d3dd 100644 > > --- a/fs/hfsplus/bitmap.c > > +++ b/fs/hfsplus/bitmap.c > > @@ -31,7 +31,7 @@ int hfsplus_block_allocate(struct super_block > > *sb, u32 size, > > if (!len) > > return size; > > > > - hfs_dbg(BITMAP, "block_allocate: %u,%u,%u\n", size, > > offset, len); > > + hfs_dbg("RANGE: size %u, offset %u, len %u\n", size, > > offset, len); > > Reference to hfs. Please, see my answers above. > > > mutex_lock(&sbi->alloc_mutex); > > mapping = sbi->alloc_file->i_mapping; > > page = read_mapping_page(mapping, offset / > > PAGE_CACHE_BITS, NULL); > > @@ -90,14 +90,14 @@ int hfsplus_block_allocate(struct super_block > > *sb, u32 size, > > else > > end = pptr + ((size + 31) & > > (PAGE_CACHE_BITS - 1)) / 32; > > } > > - hfs_dbg(BITMAP, "bitmap full\n"); > > + hfs_dbg("bitmap full\n"); > > start = size; > > goto out; > > > > found: > > start = offset + (curr - pptr) * 32 + i; > > if (start >= size) { > > - hfs_dbg(BITMAP, "bitmap full\n"); > > + hfs_dbg("bitmap full\n"); > > goto out; > > } > > /* do any partial u32 at the start */ > > @@ -155,7 +155,7 @@ int hfsplus_block_allocate(struct super_block > > *sb, u32 size, > > *max = offset + (curr - pptr) * 32 + i - start; > > sbi->free_blocks -= *max; > > hfsplus_mark_mdb_dirty(sb); > > - hfs_dbg(BITMAP, "-> %u,%u\n", start, *max); > > + hfs_dbg("RANGE-> start %u, max %u\n", start, *max); > > > 'RANGE->' is strange. Please, see my answers above. > > > out: > > mutex_unlock(&sbi->alloc_mutex); > > return start; > > @@ -174,7 +174,7 @@ int hfsplus_block_free(struct super_block *sb, > > u32 offset, u32 count) > > if (!count) > > return 0; > > > > - hfs_dbg(BITMAP, "block_free: %u,%u\n", offset, count); > > + hfs_dbg("RANGE: offset %u, count %u\n", offset, count); > > remove 'RANGE: ' ? Please, see my answers above. > > > /* are all of the bits in range? */ > > if ((offset + count) > sbi->total_blocks) > > return -ENOENT; > > diff --git a/fs/hfsplus/bnode.c b/fs/hfsplus/bnode.c > > index 14f4995588ff..bd0153aebeb6 100644 > > --- a/fs/hfsplus/bnode.c > > +++ b/fs/hfsplus/bnode.c > > @@ -214,7 +214,7 @@ void hfs_bnode_copy(struct hfs_bnode *dst_node, > > int dst, > > struct page **src_page, **dst_page; > > int l; > > > > - hfs_dbg(BNODE_MOD, "copybytes: %u,%u,%u\n", dst, src, > > len); > > + hfs_dbg("copybytes: dst %u, src %u, len %u\n", dst, src, > > len); > > remove 'copybytes: ' ? Please, see my answers above. > > > if (!len) > > return; > > > > @@ -272,7 +272,7 @@ void hfs_bnode_move(struct hfs_bnode *node, int > > dst, int src, int len) > > void *src_ptr, *dst_ptr; > > int l; > > > > - hfs_dbg(BNODE_MOD, "movebytes: %u,%u,%u\n", dst, src, > > len); > > + hfs_dbg("movebytes: dst %u, src %u, len %u\n", dst, src, > > len); > > Ditto. Please, see my answers above. > > > if (!len) > > return; > > > > @@ -392,16 +392,16 @@ void hfs_bnode_dump(struct hfs_bnode *node) > > __be32 cnid; > > int i, off, key_off; > > > > - hfs_dbg(BNODE_MOD, "bnode: %d\n", node->this); > > + hfs_dbg("node_id %d\n", node->this); > > hfs_bnode_read(node, &desc, 0, sizeof(desc)); > > - hfs_dbg(BNODE_MOD, "%d, %d, %d, %d, %d\n", > > + hfs_dbg("next %d, prev %d, type %d, height %d, num_recs > > %d\n", > > be32_to_cpu(desc.next), be32_to_cpu(desc.prev), > > desc.type, desc.height, > > be16_to_cpu(desc.num_recs)); > > > > off = node->tree->node_size - 2; > > for (i = be16_to_cpu(desc.num_recs); i >= 0; off -= 2, i-- > > ) { > > key_off = hfs_bnode_read_u16(node, off); > > - hfs_dbg(BNODE_MOD, " %d", key_off); > > + hfs_dbg(" key_off %d", key_off); > > if (i && node->type == HFS_NODE_INDEX) { > > int tmp; > > > > @@ -410,17 +410,17 @@ void hfs_bnode_dump(struct hfs_bnode *node) > > tmp = hfs_bnode_read_u16(node, > > key_off) + 2; > > else > > tmp = node->tree->max_key_len + 2; > > - hfs_dbg_cont(BNODE_MOD, " (%d", tmp); > > + hfs_dbg(" (%d", tmp); > > Could we describe those info ? Please, see my answers above. > > > hfs_bnode_read(node, &cnid, key_off + tmp, > > 4); > > - hfs_dbg_cont(BNODE_MOD, ",%d)", > > be32_to_cpu(cnid)); > > + hfs_dbg(", cnid %d)", be32_to_cpu(cnid)); > > } else if (i && node->type == HFS_NODE_LEAF) { > > int tmp; > > > > tmp = hfs_bnode_read_u16(node, key_off); > > - hfs_dbg_cont(BNODE_MOD, " (%d)", tmp); > > + hfs_dbg(" (%d)", tmp); > > } > > } > > - hfs_dbg_cont(BNODE_MOD, "\n"); > > + hfs_dbg("\n"); > > } > > > > void hfs_bnode_unlink(struct hfs_bnode *node) > > @@ -456,7 +456,7 @@ void hfs_bnode_unlink(struct hfs_bnode *node) > > > > /* move down? */ > > if (!node->prev && !node->next) > > - hfs_dbg(BNODE_MOD, "hfs_btree_del_level\n"); > > + hfs_dbg("btree delete level\n"); > > if (!node->parent) { > > tree->root = 0; > > tree->depth = 0; > > @@ -511,7 +511,7 @@ static struct hfs_bnode > > *__hfs_bnode_create(struct hfs_btree *tree, u32 cnid) > > node->this = cnid; > > set_bit(HFS_BNODE_NEW, &node->flags); > > atomic_set(&node->refcnt, 1); > > - hfs_dbg(BNODE_REFS, "new_node(%d:%d): 1\n", > > + hfs_dbg("cnid%d, node_id %d, refcnt 1\n", > > > add white space? Yes, we can do it. > > > node->tree->cnid, node->this); > > init_waitqueue_head(&node->lock_wq); > > spin_lock(&tree->hash_lock); > > @@ -551,7 +551,7 @@ void hfs_bnode_unhash(struct hfs_bnode *node) > > { > > struct hfs_bnode **p; > > > > - hfs_dbg(BNODE_REFS, "remove_node(%d:%d): %d\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt %d\n", > > node->tree->cnid, node->this, atomic_read(&node- > > >refcnt)); > > for (p = &node->tree->node_hash[hfs_bnode_hash(node- > > >this)]; > > *p && *p != node; p = &(*p)->next_hash) > > @@ -697,7 +697,7 @@ void hfs_bnode_get(struct hfs_bnode *node) > > { > > if (node) { > > atomic_inc(&node->refcnt); > > - hfs_dbg(BNODE_REFS, "get_node(%d:%d): %d\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt %d\n", > > node->tree->cnid, node->this, > > atomic_read(&node->refcnt)); > > } > > @@ -710,7 +710,7 @@ void hfs_bnode_put(struct hfs_bnode *node) > > struct hfs_btree *tree = node->tree; > > int i; > > > > - hfs_dbg(BNODE_REFS, "put_node(%d:%d): %d\n", > > + hfs_dbg("cnid %d, node_id %d, refcnt %d\n", > > node->tree->cnid, node->this, > > atomic_read(&node->refcnt)); > > BUG_ON(!atomic_read(&node->refcnt)); > > diff --git a/fs/hfsplus/brec.c b/fs/hfsplus/brec.c > > index 1918544a7871..81683eee28c8 100644 > > --- a/fs/hfsplus/brec.c > > +++ b/fs/hfsplus/brec.c > > @@ -92,7 +92,7 @@ int hfs_brec_insert(struct hfs_find_data *fd, > > void *entry, int entry_len) > > end_rec_off = tree->node_size - (node->num_recs + 1) * 2; > > end_off = hfs_bnode_read_u16(node, end_rec_off); > > end_rec_off -= 2; > > - hfs_dbg(BNODE_MOD, "insert_rec: %d, %d, %d, %d\n", > > + hfs_dbg("RECORD: rec %d, size %d, end_off %d, end_rec_off > > %d\n", > > remove 'RECORD: '? Please, see my answers above. > > > rec, size, end_off, end_rec_off); > > if (size > end_rec_off - end_off) { > > if (new_node) > > @@ -193,7 +193,7 @@ int hfs_brec_remove(struct hfs_find_data *fd) > > mark_inode_dirty(tree->inode); > > } > > hfs_bnode_dump(node); > > - hfs_dbg(BNODE_MOD, "remove_rec: %d, %d\n", > > + hfs_dbg("RECORD: rec %d, len %d\n", > > > Ditto. Please, see my answers above. > > > fd->record, fd->keylength + fd->entrylength); > > if (!--node->num_recs) { > > hfs_bnode_unlink(node); > > @@ -246,7 +246,7 @@ static struct hfs_bnode *hfs_bnode_split(struct > > hfs_find_data *fd) > > if (IS_ERR(new_node)) > > return new_node; > > hfs_bnode_get(node); > > - hfs_dbg(BNODE_MOD, "split_nodes: %d - %d - %d\n", > > + hfs_dbg("bnodes: this %d - new %d - next %d\n", > > remove 'bnodes: ' ? Please, see my answers above. > > > node->this, new_node->this, node->next); > > new_node->next = node->next; > > new_node->prev = node->this; > > @@ -383,7 +383,7 @@ static int hfs_brec_update_parent(struct > > hfs_find_data *fd) > > newkeylen = hfs_bnode_read_u16(node, 14) + 2; > > else > > fd->keylength = newkeylen = tree->max_key_len + 2; > > - hfs_dbg(BNODE_MOD, "update_rec: %d, %d, %d\n", > > + hfs_dbg("RECORD: rec %d, keylength %d, newkeylen %d\n", > > > remove 'RECORD: ' ? Please, see my answers above. > > > rec, fd->keylength, newkeylen); > > > > rec_off = tree->node_size - (rec + 2) * 2; > > @@ -395,7 +395,7 @@ static int hfs_brec_update_parent(struct > > hfs_find_data *fd) > > end_off = hfs_bnode_read_u16(parent, end_rec_off); > > if (end_rec_off - end_off < diff) { > > > > - hfs_dbg(BNODE_MOD, "splitting index > > node\n"); > > + hfs_dbg("splitting index node\n"); > > fd->bnode = parent; > > new_node = hfs_bnode_split(fd); > > if (IS_ERR(new_node)) > > diff --git a/fs/hfsplus/btree.c b/fs/hfsplus/btree.c > > index 9e1732a2b92a..0583206cde80 100644 > > --- a/fs/hfsplus/btree.c > > +++ b/fs/hfsplus/btree.c > > @@ -428,7 +428,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct > > hfs_btree *tree) > > kunmap_local(data); > > nidx = node->next; > > if (!nidx) { > > - hfs_dbg(BNODE_MOD, "create new bmap > > node\n"); > > + hfs_dbg("create new bmap node\n"); > > next_node = hfs_bmap_new_bmap(node, idx); > > } else > > next_node = hfs_bnode_find(tree, nidx); > > @@ -454,7 +454,7 @@ void hfs_bmap_free(struct hfs_bnode *node) > > u32 nidx; > > u8 *data, byte, m; > > > > - hfs_dbg(BNODE_MOD, "btree_free_node: %u\n", node->this); > > + hfs_dbg("node_id %u\n", node->this); > > node id? Please, see my answers above. > > > BUG_ON(!node->this); > > tree = node->tree; > > nidx = node->this; > > diff --git a/fs/hfsplus/catalog.c b/fs/hfsplus/catalog.c > > index 1995bafee839..38ecde83bcea 100644 > > --- a/fs/hfsplus/catalog.c > > +++ b/fs/hfsplus/catalog.c > > @@ -259,7 +259,7 @@ int hfsplus_create_cat(u32 cnid, struct inode > > *dir, > > int entry_size; > > int err; > > > > - hfs_dbg(CAT_MOD, "create_cat: %s,%u(%d)\n", > > + hfs_dbg("entry: name %s, cnid %u, i_nlink %d\n", > > remove 'entry: ' ? Please, see my answers above. > > > > str->name, cnid, inode->i_nlink); > > err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &fd); > > if (err) > > @@ -336,7 +336,7 @@ int hfsplus_delete_cat(u32 cnid, struct inode > > *dir, const struct qstr *str) > > int err, off; > > u16 type; > > > > - hfs_dbg(CAT_MOD, "delete_cat: %s,%u\n", str ? str->name : > > NULL, cnid); > > + hfs_dbg("entry: name %s, cnid %u\n", str ? str->name : > > NULL, cnid); > > Ditto. Please, see my answers above. > > > err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &fd); > > if (err) > > return err; > > @@ -441,7 +441,7 @@ int hfsplus_rename_cat(u32 cnid, > > int entry_size, type; > > int err; > > > > - hfs_dbg(CAT_MOD, "rename_cat: %u - %lu,%s - %lu,%s\n", > > + hfs_dbg("entry: cnid %u - ino %lu, name %s - ino %lu, name > > %s\n", > > Ditto. Please, see my answers above. > > > cnid, src_dir->i_ino, src_name->name, > > dst_dir->i_ino, dst_name->name); > > err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &src_fd); > > diff --git a/fs/hfsplus/extents.c b/fs/hfsplus/extents.c > > index b1699b3c246a..b22b328113e6 100644 > > --- a/fs/hfsplus/extents.c > > +++ b/fs/hfsplus/extents.c > > @@ -275,7 +275,7 @@ int hfsplus_get_block(struct inode *inode, > > sector_t iblock, > > mutex_unlock(&hip->extents_lock); > > > > done: > > - hfs_dbg(EXTENT, "get_block(%lu): %llu - %u\n", > > + hfs_dbg("ino(%lu): iblock %llu - dblock %u\n", > > > + hfs_dbg("ino %lu, iblock %llu - dblock %u\n", ? > > > inode->i_ino, (long long)iblock, dblock); > > > > mask = (1 << sbi->fs_shift) - 1; > > @@ -298,12 +298,12 @@ static void hfsplus_dump_extent(struct > > hfsplus_extent *extent) > > { > > int i; > > > > - hfs_dbg(EXTENT, " "); > > + hfs_dbg("EXTENT "); > > extent: ? Please, see my answers above. > > > for (i = 0; i < 8; i++) > > - hfs_dbg_cont(EXTENT, " %u:%u", > > - be32_to_cpu(extent[i].start_block), > > - be32_to_cpu(extent[i].block_count)); > > - hfs_dbg_cont(EXTENT, "\n"); > > + hfs_dbg(" start_block %u, block_count%u", > > + be32_to_cpu(extent[i].start_block), > > + be32_to_cpu(extent[i].block_count)); > > + hfs_dbg("\n"); > > } > > > > static int hfsplus_add_extent(struct hfsplus_extent *extent, u32 > > offset, > > @@ -360,7 +360,7 @@ static int hfsplus_free_extents(struct > > super_block *sb, > > err = hfsplus_block_free(sb, start, > > count); > > if (err) { > > pr_err("can't free extent\n"); > > - hfs_dbg(EXTENT, " start: %u count: > > %u\n", > > + hfs_dbg("EXTENT: start: %u count: > > %u\n", > > > convert to pr_err ? Probably, makes sense. > > > start, count); > > } > > extent->block_count = 0; > > @@ -371,7 +371,7 @@ static int hfsplus_free_extents(struct > > super_block *sb, > > err = hfsplus_block_free(sb, start + > > count, block_nr); > > if (err) { > > pr_err("can't free extent\n"); > > - hfs_dbg(EXTENT, " start: %u count: > > %u\n", > > + hfs_dbg("EXTENT: start: %u count: > > %u\n", > > remove 'EXTENT:' ? Please, see my answers above. > > > start, count); > > } > > extent->block_count = cpu_to_be32(count); > > @@ -478,11 +478,12 @@ int hfsplus_file_extend(struct inode *inode, > > bool zeroout) > > goto out; > > } > > > > - hfs_dbg(EXTENT, "extend %lu: %u,%u\n", inode->i_ino, > > start, len); > > + hfs_dbg("ino %lu: start %u, len %u\n", inode->i_ino, > > start, len); > > s/:/, ? Please, see my answers above. > > > > > if (hip->alloc_blocks <= hip->first_blocks) { > > if (!hip->first_blocks) { > > - hfs_dbg(EXTENT, "first extents\n"); > > + hfs_dbg("first_extents[0]: start %u, len > > %u\n", > > + start, len); > > /* no extents yet */ > > hip->first_extents[0].start_block = > > cpu_to_be32(start); > > hip->first_extents[0].block_count = > > cpu_to_be32(len); > > @@ -521,7 +522,7 @@ int hfsplus_file_extend(struct inode *inode, > > bool zeroout) > > return res; > > > > insert_extent: > > - hfs_dbg(EXTENT, "insert new extent\n"); > > + hfs_dbg("insert new extent\n"); > > res = hfsplus_ext_write_extent_locked(inode); > > if (res) > > goto out; > > @@ -546,7 +547,7 @@ void hfsplus_file_truncate(struct inode *inode) > > u32 alloc_cnt, blk_cnt, start; > > int res; > > > > - hfs_dbg(INODE, "truncate: %lu, %llu -> %llu\n", > > + hfs_dbg("ino: %lu, phys_size %llu -> i_size %llu\n", > > > + hfs_dbg("ino %lu, phys size %llu -> %llu\n", > > > inode->i_ino, (long long)hip->phys_size, inode- > > >i_size); > > > > if (inode->i_size > hip->phys_size) { > > diff --git a/fs/hfsplus/hfsplus_fs.h b/fs/hfsplus/hfsplus_fs.h > > index 96a5c24813dd..34039e2d5417 100644 > > --- a/fs/hfsplus/hfsplus_fs.h > > +++ b/fs/hfsplus/hfsplus_fs.h > > @@ -11,47 +11,14 @@ > > #ifndef _LINUX_HFSPLUS_FS_H > > #define _LINUX_HFSPLUS_FS_H > > > > -#ifdef pr_fmt > > -#undef pr_fmt > > -#endif > > - > > -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > > - > > #include <linux/fs.h> > > #include <linux/mutex.h> > > #include <linux/buffer_head.h> > > #include <linux/blkdev.h> > > #include <linux/fs_context.h> > > +#include <linux/hfs_common.h> > > #include "hfsplus_raw.h" > > > > -#define DBG_BNODE_REFS 0x00000001 > > -#define DBG_BNODE_MOD 0x00000002 > > -#define DBG_CAT_MOD 0x00000004 > > -#define DBG_INODE 0x00000008 > > -#define DBG_SUPER 0x00000010 > > -#define DBG_EXTENT 0x00000020 > > -#define DBG_BITMAP 0x00000040 > > -#define DBG_ATTR_MOD 0x00000080 > > - > > -#if 0 > > -#define DBG_MASK (DBG_EXTENT|DBG_INODE|DBG_BNODE_MOD) > > -#define DBG_MASK (DBG_BNODE_MOD|DBG_CAT_MOD|DBG_INODE) > > -#define > > DBG_MASK (DBG_CAT_MOD|DBG_BNODE_REFS|DBG_INODE|DBG_EXTENT) > > -#endif > > -#define DBG_MASK (0) > > - > > -#define hfs_dbg(flg, fmt, ...) \ > > -do { \ > > - if (DBG_##flg & DBG_MASK) \ > > - printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \ > > -} while (0) > > - > > -#define hfs_dbg_cont(flg, fmt, ...) \ > > -do { \ > > - if (DBG_##flg & DBG_MASK) \ > > - pr_cont(fmt, ##__VA_ARGS__); \ > > -} while (0) > > - > > /* Runtime config options */ > > #define HFSPLUS_DEF_CR_TYPE 0x3F3F3F3F /* '????' */ > > > > diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c > > index 86351bdc8985..403feb3d7411 100644 > > --- a/fs/hfsplus/super.c > > +++ b/fs/hfsplus/super.c > > @@ -150,7 +150,7 @@ static int hfsplus_write_inode(struct inode > > *inode, > > { > > int err; > > > > - hfs_dbg(INODE, "hfsplus_write_inode: %lu\n", inode- > > >i_ino); > > + hfs_dbg("ino: %lu\n", inode->i_ino); > > + hfs_dbg("ino %lu\n", inode->i_ino); ? > > > > > err = hfsplus_ext_write_extent(inode); > > if (err) > > @@ -165,7 +165,7 @@ static int hfsplus_write_inode(struct inode > > *inode, > > > > static void hfsplus_evict_inode(struct inode *inode) > > { > > - hfs_dbg(INODE, "hfsplus_evict_inode: %lu\n", inode- > > >i_ino); > > + hfs_dbg("ino: %lu\n", inode->i_ino); > > Ditto. Please, see my answers above. Thanks, Slava. > > > truncate_inode_pages_final(&inode->i_data); > > clear_inode(inode); > > if (HFSPLUS_IS_RSRC(inode)) { > > @@ -184,7 +184,7 @@ static int hfsplus_sync_fs(struct super_block > > *sb, int wait) > > if (!wait) > > return 0; > > > > - hfs_dbg(SUPER, "hfsplus_sync_fs\n"); > > + hfs_dbg("starting...\n"); > > > > /* > > * Explicitly write out the special metadata inodes. > > @@ -215,6 +215,11 @@ static int hfsplus_sync_fs(struct super_block > > *sb, int wait) > > vhdr->folder_count = cpu_to_be32(sbi->folder_count); > > vhdr->file_count = cpu_to_be32(sbi->file_count); > > > > + hfs_dbg("free_blocks %u, next_cnid %u, " > > + "folder_count %u, file_count %u\n", > > + sbi->free_blocks, sbi->next_cnid, > > + sbi->folder_count, sbi->file_count); > > + > > if (test_and_clear_bit(HFSPLUS_SB_WRITEBACKUP, &sbi- > > >flags)) { > > memcpy(sbi->s_backup_vhdr, sbi->s_vhdr, > > sizeof(*sbi->s_vhdr)); > > write_backup = 1; > > @@ -240,6 +245,8 @@ static int hfsplus_sync_fs(struct super_block > > *sb, int wait) > > if (!test_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags)) > > blkdev_issue_flush(sb->s_bdev); > > > > + hfs_dbg("finished: err %d\n", error); > > + hfs_dbg("finished err %d\n", error); ? > > > + > > return error; > > } > > > > @@ -288,7 +295,7 @@ static void hfsplus_put_super(struct > > super_block *sb) > > { > > struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb); > > > > - hfs_dbg(SUPER, "hfsplus_put_super\n"); > > + hfs_dbg("starting...\n"); > > > > cancel_delayed_work_sync(&sbi->sync_work); > > > > @@ -310,6 +317,8 @@ static void hfsplus_put_super(struct > > super_block *sb) > > kfree(sbi->s_vhdr_buf); > > kfree(sbi->s_backup_vhdr_buf); > > call_rcu(&sbi->rcu, delayed_free); > > + > > + hfs_dbg("finished\n"); > > } > > > > static int hfsplus_statfs(struct dentry *dentry, struct kstatfs > > *buf) > > diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c > > index 18dc3d254d21..f34404798025 100644 > > --- a/fs/hfsplus/xattr.c > > +++ b/fs/hfsplus/xattr.c > > @@ -64,7 +64,7 @@ static void hfsplus_init_header_node(struct inode > > *attr_file, > > u32 used_bmp_bytes; > > u64 tmp; > > > > - hfs_dbg(ATTR_MOD, "init_hdr_attr_file: clump %u, node_size > > %u\n", > > + hfs_dbg("clump %u, node_size %u\n", > > clump_size, node_size); > > > > /* The end of the node contains list of record offsets */ > > @@ -132,7 +132,7 @@ static int > > hfsplus_create_attributes_file(struct super_block *sb) > > struct page *page; > > int old_state = HFSPLUS_EMPTY_ATTR_TREE; > > > > - hfs_dbg(ATTR_MOD, "create_attr_file: ino %d\n", > > HFSPLUS_ATTR_CNID); > > + hfs_dbg("ino %d\n", HFSPLUS_ATTR_CNID); > > > > check_attr_tree_state_again: > > switch (atomic_read(&sbi->attr_tree_state)) { > > diff --git a/include/linux/hfs_common.h > > b/include/linux/hfs_common.h > > new file mode 100644 > > index 000000000000..8838ca2f3d08 > > --- /dev/null > > +++ b/include/linux/hfs_common.h > > @@ -0,0 +1,20 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +/* > > + * HFS/HFS+ common definitions, inline functions, > > + * and shared functionality. > > + */ > > + > > +#ifndef _HFS_COMMON_H_ > > +#define _HFS_COMMON_H_ > > + > > +#ifdef pr_fmt > > +#undef pr_fmt > > +#endif > > + > > +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > > + > > +#define hfs_dbg(fmt, > > ...) \ > > + pr_debug("pid %d:%s:%d %s(): " > > fmt, \ > > + current->pid, __FILE__, __LINE__, __func__, > > ##__VA_ARGS__) \ > > + > > +#endif /* _HFS_COMMON_H_ */ > > Thx, > Yangtao