Blame view

fs/befs/debug.c 7.11 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  // SPDX-License-Identifier: GPL-2.0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
3
  /*
   *  linux/fs/befs/debug.c
a83179a8e   Luis de Bethencourt   befs: fix style i...
4
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
8
9
10
11
12
   * Copyright (C) 2001 Will Dyson (will_dyson at pobox.com)
   *
   * With help from the ntfs-tng driver by Anton Altparmakov
   *
   * Copyright (C) 1999  Makoto Kato (m_kato@ga2.so-net.ne.jp)
   *
   * debug functions
   */
dac52fc18   Fabian Frederick   BEFS: logging cle...
13
  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
14
15
16
17
18
19
20
  #ifdef __KERNEL__
  
  #include <stdarg.h>
  #include <linux/string.h>
  #include <linux/spinlock.h>
  #include <linux/kernel.h>
  #include <linux/fs.h>
c325962b6   Pekka Enberg   kmemtrace, befs: ...
21
  #include <linux/slab.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
22
23
24
25
  
  #endif				/* __KERNEL__ */
  
  #include "befs.h"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
26

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
27
28
29
  void
  befs_error(const struct super_block *sb, const char *fmt, ...)
  {
dac52fc18   Fabian Frederick   BEFS: logging cle...
30
  	struct va_format vaf;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
31
  	va_list args;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
32
33
  
  	va_start(args, fmt);
dac52fc18   Fabian Frederick   BEFS: logging cle...
34
35
36
37
  	vaf.fmt = fmt;
  	vaf.va = &args;
  	pr_err("(%s): %pV
  ", sb->s_id, &vaf);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
38
  	va_end(args);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
39
40
41
42
43
  }
  
  void
  befs_warning(const struct super_block *sb, const char *fmt, ...)
  {
dac52fc18   Fabian Frederick   BEFS: logging cle...
44
  	struct va_format vaf;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
45
  	va_list args;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
46
47
  
  	va_start(args, fmt);
dac52fc18   Fabian Frederick   BEFS: logging cle...
48
49
50
51
  	vaf.fmt = fmt;
  	vaf.va = &args;
  	pr_warn("(%s): %pV
  ", sb->s_id, &vaf);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
52
  	va_end(args);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
53
54
55
56
57
58
  }
  
  void
  befs_debug(const struct super_block *sb, const char *fmt, ...)
  {
  #ifdef CONFIG_BEFS_DEBUG
dac52fc18   Fabian Frederick   BEFS: logging cle...
59
  	struct va_format vaf;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
  	va_list args;
a83179a8e   Luis de Bethencourt   befs: fix style i...
61

dac52fc18   Fabian Frederick   BEFS: logging cle...
62
63
64
65
66
67
  	va_start(args, fmt);
  	vaf.fmt = fmt;
  	vaf.va = &args;
  	pr_debug("(%s): %pV
  ", sb->s_id, &vaf);
  	va_end(args);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
68
69
70
71
72
  
  #endif				//CONFIG_BEFS_DEBUG
  }
  
  void
a83179a8e   Luis de Bethencourt   befs: fix style i...
73
  befs_dump_inode(const struct super_block *sb, befs_inode *inode)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  {
  #ifdef CONFIG_BEFS_DEBUG
  
  	befs_block_run tmp_run;
  
  	befs_debug(sb, "befs_inode information");
  
  	befs_debug(sb, "  magic1 %08x", fs32_to_cpu(sb, inode->magic1));
  
  	tmp_run = fsrun_to_cpu(sb, inode->inode_num);
  	befs_debug(sb, "  inode_num %u, %hu, %hu",
  		   tmp_run.allocation_group, tmp_run.start, tmp_run.len);
  
  	befs_debug(sb, "  uid %u", fs32_to_cpu(sb, inode->uid));
  	befs_debug(sb, "  gid %u", fs32_to_cpu(sb, inode->gid));
  	befs_debug(sb, "  mode %08x", fs32_to_cpu(sb, inode->mode));
  	befs_debug(sb, "  flags %08x", fs32_to_cpu(sb, inode->flags));
dac52fc18   Fabian Frederick   BEFS: logging cle...
91
  	befs_debug(sb, "  create_time %llu",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
92
  		   fs64_to_cpu(sb, inode->create_time));
dac52fc18   Fabian Frederick   BEFS: logging cle...
93
  	befs_debug(sb, "  last_modified_time %llu",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
94
95
96
97
98
99
100
101
102
103
104
105
  		   fs64_to_cpu(sb, inode->last_modified_time));
  
  	tmp_run = fsrun_to_cpu(sb, inode->parent);
  	befs_debug(sb, "  parent [%u, %hu, %hu]",
  		   tmp_run.allocation_group, tmp_run.start, tmp_run.len);
  
  	tmp_run = fsrun_to_cpu(sb, inode->attributes);
  	befs_debug(sb, "  attributes [%u, %hu, %hu]",
  		   tmp_run.allocation_group, tmp_run.start, tmp_run.len);
  
  	befs_debug(sb, "  type %08x", fs32_to_cpu(sb, inode->type));
  	befs_debug(sb, "  inode_size %u", fs32_to_cpu(sb, inode->inode_size));
e5201c58c   Al Viro   [PATCH] befs: mis...
106
  	if (S_ISLNK(fs32_to_cpu(sb, inode->mode))) {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
107
108
109
110
111
112
113
114
115
116
117
  		befs_debug(sb, "  Symbolic link [%s]", inode->data.symlink);
  	} else {
  		int i;
  
  		for (i = 0; i < BEFS_NUM_DIRECT_BLOCKS; i++) {
  			tmp_run =
  			    fsrun_to_cpu(sb, inode->data.datastream.direct[i]);
  			befs_debug(sb, "  direct %d [%u, %hu, %hu]", i,
  				   tmp_run.allocation_group, tmp_run.start,
  				   tmp_run.len);
  		}
dac52fc18   Fabian Frederick   BEFS: logging cle...
118
  		befs_debug(sb, "  max_direct_range %llu",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
119
120
121
122
123
124
125
126
  			   fs64_to_cpu(sb,
  				       inode->data.datastream.
  				       max_direct_range));
  
  		tmp_run = fsrun_to_cpu(sb, inode->data.datastream.indirect);
  		befs_debug(sb, "  indirect [%u, %hu, %hu]",
  			   tmp_run.allocation_group,
  			   tmp_run.start, tmp_run.len);
dac52fc18   Fabian Frederick   BEFS: logging cle...
127
  		befs_debug(sb, "  max_indirect_range %llu",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
128
129
130
131
132
133
134
135
136
  			   fs64_to_cpu(sb,
  				       inode->data.datastream.
  				       max_indirect_range));
  
  		tmp_run =
  		    fsrun_to_cpu(sb, inode->data.datastream.double_indirect);
  		befs_debug(sb, "  double indirect [%u, %hu, %hu]",
  			   tmp_run.allocation_group, tmp_run.start,
  			   tmp_run.len);
dac52fc18   Fabian Frederick   BEFS: logging cle...
137
  		befs_debug(sb, "  max_double_indirect_range %llu",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
138
139
140
  			   fs64_to_cpu(sb,
  				       inode->data.datastream.
  				       max_double_indirect_range));
dac52fc18   Fabian Frederick   BEFS: logging cle...
141
  		befs_debug(sb, "  size %llu",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
142
143
144
145
146
147
148
149
150
151
152
  			   fs64_to_cpu(sb, inode->data.datastream.size));
  	}
  
  #endif				//CONFIG_BEFS_DEBUG
  }
  
  /*
   * Display super block structure for debug.
   */
  
  void
a83179a8e   Luis de Bethencourt   befs: fix style i...
153
  befs_dump_super_block(const struct super_block *sb, befs_super_block *sup)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
154
155
156
157
158
159
160
161
162
163
164
165
166
167
  {
  #ifdef CONFIG_BEFS_DEBUG
  
  	befs_block_run tmp_run;
  
  	befs_debug(sb, "befs_super_block information");
  
  	befs_debug(sb, "  name %s", sup->name);
  	befs_debug(sb, "  magic1 %08x", fs32_to_cpu(sb, sup->magic1));
  	befs_debug(sb, "  fs_byte_order %08x",
  		   fs32_to_cpu(sb, sup->fs_byte_order));
  
  	befs_debug(sb, "  block_size %u", fs32_to_cpu(sb, sup->block_size));
  	befs_debug(sb, "  block_shift %u", fs32_to_cpu(sb, sup->block_shift));
dac52fc18   Fabian Frederick   BEFS: logging cle...
168
169
  	befs_debug(sb, "  num_blocks %llu", fs64_to_cpu(sb, sup->num_blocks));
  	befs_debug(sb, "  used_blocks %llu", fs64_to_cpu(sb, sup->used_blocks));
d1a8c7067   Luis de Bethencourt   befs: dump inode_...
170
  	befs_debug(sb, "  inode_size %u", fs32_to_cpu(sb, sup->inode_size));
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
171
172
173
174
175
176
177
178
179
180
181
182
  
  	befs_debug(sb, "  magic2 %08x", fs32_to_cpu(sb, sup->magic2));
  	befs_debug(sb, "  blocks_per_ag %u",
  		   fs32_to_cpu(sb, sup->blocks_per_ag));
  	befs_debug(sb, "  ag_shift %u", fs32_to_cpu(sb, sup->ag_shift));
  	befs_debug(sb, "  num_ags %u", fs32_to_cpu(sb, sup->num_ags));
  
  	befs_debug(sb, "  flags %08x", fs32_to_cpu(sb, sup->flags));
  
  	tmp_run = fsrun_to_cpu(sb, sup->log_blocks);
  	befs_debug(sb, "  log_blocks %u, %hu, %hu",
  		   tmp_run.allocation_group, tmp_run.start, tmp_run.len);
dac52fc18   Fabian Frederick   BEFS: logging cle...
183
184
  	befs_debug(sb, "  log_start %lld", fs64_to_cpu(sb, sup->log_start));
  	befs_debug(sb, "  log_end %lld", fs64_to_cpu(sb, sup->log_end));
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
  
  	befs_debug(sb, "  magic3 %08x", fs32_to_cpu(sb, sup->magic3));
  
  	tmp_run = fsrun_to_cpu(sb, sup->root_dir);
  	befs_debug(sb, "  root_dir %u, %hu, %hu",
  		   tmp_run.allocation_group, tmp_run.start, tmp_run.len);
  
  	tmp_run = fsrun_to_cpu(sb, sup->indices);
  	befs_debug(sb, "  indices %u, %hu, %hu",
  		   tmp_run.allocation_group, tmp_run.start, tmp_run.len);
  
  #endif				//CONFIG_BEFS_DEBUG
  }
  
  #if 0
  /* unused */
  void
a83179a8e   Luis de Bethencourt   befs: fix style i...
202
  befs_dump_small_data(const struct super_block *sb, befs_small_data *sd)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
203
204
205
206
207
  {
  }
  
  /* unused */
  void
a9721f315   Al Viro   [PATCH] befs: end...
208
  befs_dump_run(const struct super_block *sb, befs_disk_block_run run)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
209
210
  {
  #ifdef CONFIG_BEFS_DEBUG
a9721f315   Al Viro   [PATCH] befs: end...
211
  	befs_block_run n = fsrun_to_cpu(sb, run);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
212

a9721f315   Al Viro   [PATCH] befs: end...
213
  	befs_debug(sb, "[%u, %hu, %hu]", n.allocation_group, n.start, n.len);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
214
215
216
217
218
219
  
  #endif				//CONFIG_BEFS_DEBUG
  }
  #endif  /*  0  */
  
  void
a83179a8e   Luis de Bethencourt   befs: fix style i...
220
221
  befs_dump_index_entry(const struct super_block *sb,
  		      befs_disk_btree_super *super)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
  {
  #ifdef CONFIG_BEFS_DEBUG
  
  	befs_debug(sb, "Btree super structure");
  	befs_debug(sb, "  magic %08x", fs32_to_cpu(sb, super->magic));
  	befs_debug(sb, "  node_size %u", fs32_to_cpu(sb, super->node_size));
  	befs_debug(sb, "  max_depth %08x", fs32_to_cpu(sb, super->max_depth));
  
  	befs_debug(sb, "  data_type %08x", fs32_to_cpu(sb, super->data_type));
  	befs_debug(sb, "  root_node_pointer %016LX",
  		   fs64_to_cpu(sb, super->root_node_ptr));
  	befs_debug(sb, "  free_node_pointer %016LX",
  		   fs64_to_cpu(sb, super->free_node_ptr));
  	befs_debug(sb, "  maximum size %016LX",
  		   fs64_to_cpu(sb, super->max_size));
  
  #endif				//CONFIG_BEFS_DEBUG
  }
  
  void
a83179a8e   Luis de Bethencourt   befs: fix style i...
242
  befs_dump_index_node(const struct super_block *sb, befs_btree_nodehead *node)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
243
244
245
246
247
248
249
250
251
252
253
254
255
256
  {
  #ifdef CONFIG_BEFS_DEBUG
  
  	befs_debug(sb, "Btree node structure");
  	befs_debug(sb, "  left %016LX", fs64_to_cpu(sb, node->left));
  	befs_debug(sb, "  right %016LX", fs64_to_cpu(sb, node->right));
  	befs_debug(sb, "  overflow %016LX", fs64_to_cpu(sb, node->overflow));
  	befs_debug(sb, "  all_key_count %hu",
  		   fs16_to_cpu(sb, node->all_key_count));
  	befs_debug(sb, "  all_key_length %hu",
  		   fs16_to_cpu(sb, node->all_key_length));
  
  #endif				//CONFIG_BEFS_DEBUG
  }