]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - man/man8/xfs_io.8
7fd74781060a5c64f800757b3500220d8b342501
[thirdparty/xfsprogs-dev.git] / man / man8 / xfs_io.8
1 .TH xfs_io 8
2 .SH NAME
3 xfs_io \- debug the I/O path of an XFS filesystem
4 .SH SYNOPSIS
5 .B xfs_io
6 [
7 .B \-adfmrRstxT
8 ] [
9 .B \-c
10 .I cmd
11 ] ... [
12 .B \-p
13 .I prog
14 ]
15 .I file
16 .br
17 .B xfs_io \-V
18 .SH DESCRIPTION
19 .B xfs_io
20 is a debugging tool like
21 .BR xfs_db (8),
22 but is aimed at examining the regular file I/O paths rather than the
23 raw XFS volume itself.
24 These code paths include not only the obvious read/write/mmap interfaces
25 for manipulating files, but also cover all of the XFS extensions (such
26 as space preallocation, additional inode flags, etc).
27 .SH OPTIONS
28 .TP 1.0i
29 .BI \-c " cmd"
30 .B xfs_io
31 commands may be run interactively (the default) or as arguments on
32 the command line. Multiple
33 .B \-c
34 arguments may be given. The commands are run in the sequence given,
35 then the program exits.
36 .TP
37 .BI \-p " prog"
38 Set the program name for prompts and some error messages,
39 the default value is
40 .BR xfs_io .
41 .TP
42 .B \-f
43 Create
44 .I file
45 if it does not already exist.
46 .TP
47 .B \-r
48 Open
49 .I file
50 read-only, initially. This is required if
51 .I file
52 is immutable or append-only.
53 .TP
54 .B \-x
55 Expert mode. Dangerous commands are only available in this mode.
56 These commands also tend to require additional privileges.
57 .TP
58 .B \-V
59 Prints the version number and exits.
60 .PP
61 The other
62 .BR open (2)
63 options described below are also available from the command line.
64 .SH CONCEPTS
65 .B xfs_io
66 maintains a number of open files and memory mappings.
67 Files can be initially opened on the command line (optionally),
68 and additional files can also be opened later.
69 .PP
70 .B xfs_io
71 commands can be broken up into three groups.
72 Some commands are aimed at doing regular file I/O - read, write,
73 sync, space preallocation, etc.
74 .PP
75 The second set of commands exist for manipulating memory mapped regions
76 of a file - mapping, accessing, storing, unmapping, flushing, etc.
77 .PP
78 The remaining commands are for the navigation and display of data
79 structures relating to the open files, mappings, and the filesystems
80 where they reside.
81 .PP
82 Many commands have extensive online help. Use the
83 .B help
84 command for more details on any command.
85 .SH FILE I/O COMMANDS
86 .TP
87 .BI "file [ " N " ]"
88 Display a list of all open files and (optionally) switch to an alternate
89 current open file.
90 .TP
91 .BI "open [[ \-acdfrstRT ] " path " ]"
92 Closes the current file, and opens the file specified by
93 .I path
94 instead. Without any arguments, displays statistics about the current
95 file \- see the
96 .B stat
97 command.
98 .RS 1.0i
99 .PD 0
100 .TP 0.4i
101 .B \-a
102 opens append-only (O_APPEND).
103 .TP
104 .B \-d
105 opens for direct I/O (O_DIRECT).
106 .TP
107 .B \-f
108 creates the file if it doesn't already exist (O_CREAT).
109 .TP
110 .B \-r
111 opens read-only (O_RDONLY).
112 .TP
113 .B \-s
114 opens for synchronous I/O (O_SYNC).
115 .TP
116 .B \-t
117 truncates on open (O_TRUNC).
118 .TP
119 .B \-n
120 opens in non-blocking mode if possible (O_NONBLOCK).
121 .TP
122 .B \-T
123 create a temporary file not linked into the filesystem namespace
124 (O_TMPFILE). The pathname passed must refer to a directory which
125 is treated as virtual parent for the newly created invisible file.
126 Can not be used together with the
127 .B \-r
128 option.
129 .TP
130 .B \-R
131 marks the file as a realtime XFS file after
132 opening it, if it is not already marked as such.
133 .PD
134 .RE
135 .TP
136 .B o
137 See the
138 .B open
139 command.
140 .TP
141 .B close
142 Closes the current open file, marking the next open file as current
143 (if one exists).
144 .TP
145 .B c
146 See the
147 .B close
148 command.
149 .TP
150 .BI "pread [ \-b " bsize " ] [ \-v ] [ \-FBR [ \-Z " seed " ] ] [ \-V " vectors " ] " "offset length"
151 Reads a range of bytes in a specified blocksize from the given
152 .IR offset .
153 .RS 1.0i
154 .PD 0
155 .TP 0.4i
156 .B \-b
157 can be used to set the blocksize into which the
158 .BR read (2)
159 requests will be split. The default blocksize is 4096 bytes.
160 .TP
161 .B \-v
162 dump the contents of the buffer after reading,
163 by default only the count of bytes actually read is dumped.
164 .TP
165 .B \-F
166 read the buffers in a forwards sequential direction.
167 .TP
168 .B \-B
169 read the buffers in a reserve sequential direction.
170 .TP
171 .B \-R
172 read the buffers in the give range in a random order.
173 .TP
174 .B \-Z seed
175 specify the random number seed used for random reads.
176 .TP
177 .B \-V vectors
178 Use the vectored IO read syscall
179 .BR preadv (2)
180 with a number of blocksize length iovecs. The number of iovecs is set by the
181 .I vectors
182 parameter.
183 .PD
184 .RE
185 .TP
186 .B r
187 See the
188 .B pread
189 command.
190 .TP
191 .BI "pwrite [ \-i " file " ] [ \-d ] [ \-s " skip " ] [ \-b " size " ] [ \-S " seed " ] [ \-FBR [ \-Z " zeed " ] ] [ \-wW ] [ \-V " vectors " ] " "offset length"
192 Writes a range of bytes in a specified blocksize from the given
193 .IR offset .
194 The bytes written can be either a set pattern or read in from another
195 file before writing.
196 .RS 1.0i
197 .PD 0
198 .TP 0.4i
199 .B \-i
200 allows an input
201 .I file
202 to be specified as the source of the data to be written.
203 .TP
204 .B \-d
205 causes direct I/O, rather than the usual buffered
206 I/O, to be used when reading the input file.
207 .TP
208 .B \-s
209 specifies the number of bytes to
210 .I skip
211 from the start of the input file before starting to read.
212 .TP
213 .B \-b
214 used to set the blocksize into which the
215 .BR write (2)
216 requests will be split. The default blocksize is 4096 bytes.
217 .TP
218 .B \-S
219 used to set the (repeated) fill pattern which
220 is used when the data to write is not coming from a file.
221 The default buffer fill pattern value is 0xcdcdcdcd.
222 .TP
223 .B \-F
224 write the buffers in a forwards sequential direction.
225 .TP
226 .B \-B
227 write the buffers in a reserve sequential direction.
228 .TP
229 .B \-R
230 write the buffers in the give range in a random order.
231 .TP
232 .B \-Z seed
233 specify the random number seed used for random write
234 .TP
235 .B \-w
236 call
237 .BR fdatasync (2)
238 once all writes are complete (included in timing results)
239 .TP
240 .B \-W
241 call
242 .BR fsync (2)
243 once all writes are complete (included in timing results)
244 .TP
245 .B \-V vectors
246 Use the vectored IO write syscall
247 .BR pwritev (2)
248 with a number of blocksize length iovecs. The number of iovecs is set by the
249 .I vectors
250 parameter.
251 .RE
252 .PD
253 .TP
254 .B w
255 See the
256 .B pwrite
257 command.
258 .TP
259 .BI "bmap [ \-adlpv ] [ \-n " nx " ]"
260 Prints the block mapping for the current open file. Refer to the
261 .BR xfs_bmap (8)
262 manual page for complete documentation.
263 .TP
264 .BI "fiemap [ \-alv ] [ \-n " nx " ]"
265 Prints the block mapping for the current open file using the fiemap
266 ioctl. Options behave as described in the
267 .BR xfs_bmap (8)
268 manual page.
269 .TP
270 .BI "extsize [ \-R | \-D ] [ " value " ]"
271 Display and/or modify the preferred extent size used when allocating
272 space for the currently open file. If the
273 .B \-R
274 option is specified, a recursive descent is performed
275 for all directory entries below the currently open file
276 .RB ( \-D
277 can be used to restrict the output to directories only).
278 If the target file is a directory, then the inherited extent size
279 is set for that directory (new files created in that directory
280 inherit that extent size).
281 The
282 .I value
283 should be specified in bytes, or using one of the usual units suffixes
284 (k, m, g, b, etc). The extent size is always reported in units of bytes.
285 .TP
286 .BI "allocsp " size " 0"
287 Sets the size of the file to
288 .I size
289 and zeroes any additional space allocated using the
290 XFS_IOC_ALLOCSP/XFS_IOC_FREESP system call described in the
291 .BR xfsctl (3)
292 manual page.
293 .B allocsp
294 and
295 .B freesp
296 do exactly the same thing.
297 .TP
298 .BI "freesp " size " 0"
299 See the
300 .B allocsp
301 command.
302 .TP
303 .BI "fadvise [ \-r | \-s | [[ \-d | \-n | \-w ] " "offset length " ]]
304 On platforms which support it, allows hints be given to the system
305 regarding the expected I/O patterns on the file.
306 The range arguments are required by some advise commands ([*] below), and
307 the others must have no range arguments.
308 With no arguments, the POSIX_FADV_NORMAL advice is implied (default readahead).
309 .RS 1.0i
310 .PD 0
311 .TP 0.4i
312 .B \-d
313 the data will not be accessed again in the near future (POSIX_FADV_DONTNEED[*]).
314 .TP
315 .B \-n
316 data will be accessed once and not be reused (POSIX_FADV_NOREUSE[*]).
317 .TP
318 .B \-r
319 expect access to data in random order (POSIX_FADV_RANDOM), which sets readahead to zero.
320 .TP
321 .B \-s
322 expect access to data in sequential order (POSIX_FADV_SEQUENTIAL),
323 which doubles the default readahead on the file.
324 .TP
325 .B \-w
326 advises the specified data will be needed again (POSIX_FADV_WILLNEED[*])
327 which forces the maximum readahead.
328 .RE
329 .PD
330 .TP
331 .B fdatasync
332 Calls
333 .BR fdatasync (2)
334 to flush the file's in-core data to disk.
335 .TP
336 .B fsync
337 Calls
338 .BR fsync (2)
339 to flush all in-core file state to disk.
340 .TP
341 .B s
342 See the
343 .B fsync
344 command.
345 .TP
346 .BI "sync_range [ \-a | \-b | \-w ] offset length "
347 On platforms which support it, allows control of syncing a range of the file to
348 disk. With no options, SYNC_FILE_RANGE_WRITE is implied on the range supplied.
349 .RS 1.0i
350 .PD 0
351 .TP 0.4i
352 .B \-a
353 wait for IO in the given range to finish after writing
354 (SYNC_FILE_RANGE_WAIT_AFTER).
355 .TP
356 .B \-b
357 wait for IO in the given range to finish before writing
358 (SYNC_FILE_RANGE_WAIT_BEFORE).
359 .TP
360 .B \-w
361 start writeback of dirty data in the given range (SYNC_FILE_RANGE_WRITE).
362 .RE
363 .PD
364 .TP
365 .B sync
366 Calls
367 .BR sync (2)
368 to flush all filesystems' in-core data to disk.
369 .TP
370 .B syncfs
371 Calls
372 .BR syncfs (2)
373 to flush this filesystem's in-core data to disk.
374 .TP
375 .BI resvsp " offset length"
376 Allocates reserved, unwritten space for part of a file using the
377 XFS_IOC_RESVSP system call described in the
378 .BR xfsctl (3)
379 manual page.
380 .TP
381 .BI unresvsp " offset length"
382 Frees reserved space for part of a file using the XFS_IOC_UNRESVSP
383 system call described in the
384 .BR xfsctl (3)
385 manual page.
386 .TP
387 .BI "falloc [ \-k ]" " offset length"
388 Allocates reserved, unwritten space for part of a file using the
389 fallocate routine as described in the
390 .BR fallocate (2)
391 manual page.
392 .RS 1.0i
393 .PD 0
394 .TP 0.4i
395 .B \-k
396 will set the FALLOC_FL_KEEP_SIZE flag as described in
397 .BR fallocate (2).
398 .PD
399 .RE
400 .TP
401 .BI fcollapse " offset length"
402 Call fallocate with FALLOC_FL_COLLAPSE_RANGE flag as described in the
403 .BR fallocate (2)
404 manual page to de-allocates blocks and eliminates the hole created in this process
405 by shifting data blocks into the hole.
406 .TP
407 .BI finsert " offset length"
408 Call fallocate with FALLOC_FL_INSERT_RANGE flag as described in the
409 .BR fallocate (2)
410 manual page to create the hole by shifting data blocks.
411 .TP
412 .BI fpunch " offset length"
413 Punches (de-allocates) blocks in the file by calling fallocate with
414 the FALLOC_FL_PUNCH_HOLE flag as described in the
415 .BR fallocate (2)
416 manual page.
417 .TP
418 .BI fzero " offset length"
419 Call fallocate with FALLOC_FL_ZERO_RANGE flag as described in the
420 .BR fallocate (2)
421 manual page to allocate and zero blocks within the range.
422 .TP
423 .BI truncate " offset"
424 Truncates the current file at the given offset using
425 .BR ftruncate (2).
426 .TP
427 .BI "sendfile \-i " srcfile " | \-f " N " [ " "offset length " ]
428 On platforms which support it, allows a direct in-kernel copy between
429 two file descriptors. The current open file is the target, the source
430 must be specified as another open file
431 .RB ( \-f )
432 or by path
433 .RB ( \-i ).
434 .TP
435 .BI "readdir [ -v ] [ -o " offset " ] [ -l " length " ] "
436 Read a range of directory entries from a given offset of a directory.
437 .RS 1.0i
438 .PD 0
439 .TP 0.4i
440 .B \-v
441 verbose mode - dump dirent content as defined in
442 .BR readdir (3)
443 .TP
444 .B \-o
445 specify starting
446 .I offset
447 .TP
448 .B \-l
449 specify total
450 .I length
451 to read (in bytes)
452 .RE
453 .PD
454 .TP
455 .TP
456 .BI "seek \-a | \-d | \-h [ \-r ] [ \-s ] offset"
457 On platforms that support the
458 .BR lseek (2)
459 .B SEEK_DATA
460 and
461 .B SEEK_HOLE
462 options, display the offsets of the specified segments.
463 .RS 1.0i
464 .PD 0
465 .TP 0.4i
466 .B \-a
467 Display both
468 .B data
469 and
470 .B hole
471 segments starting at the specified
472 .B offset.
473 .TP
474 .B \-d
475 Display the
476 .B data
477 segment starting at the specified
478 .B offset.
479 .TP
480 .B \-h
481 Display the
482 .B hole
483 segment starting at the specified
484 .B offset.
485 .TP
486 .B \-r
487 Recursively display all the specified segments starting at the specified
488 .B offset.
489 .TP
490 .B \-s
491 Display the starting lseek(2) offset. This offset will be a calculated value when
492 both data and holes are displayed together or performing a recusively display.
493 .RE
494 .PD
495 .TP
496 .TP
497 .BI "reflink [ \-C ] [ \-q ] src_file [src_offset dst_offset length]"
498 On filesystems that support the
499 .B XFS_IOC_CLONE_RANGE
500 or
501 .B BTRFS_IOC_CLONE_RANGE
502 ioctls, map
503 .I length
504 bytes at offset
505 .I dst_offset
506 in the open file to the same physical blocks that are mapped at offset
507 .I src_offset
508 in the file
509 .I src_file
510 , replacing any contents that may already have been there. If a program
511 writes into a reflinked block range of either file, the dirty blocks will be
512 cloned, written to, and remapped ("copy on write") in the affected file,
513 leaving the other file(s) unchanged. If src_offset, dst_offset, and length
514 are omitted, all contents of src_file will be reflinked into the open file.
515 .RS 1.0i
516 .PD 0
517 .TP 0.4i
518 .B \-C
519 Print timing statistics in a condensed format.
520 .TP
521 .B \-q
522 Do not print timing statistics at all.
523 .RE
524 .PD
525 .TP
526 .TP
527 .BI "dedupe [ \-C ] [ \-q ] src_file src_offset dst_offset length"
528 On filesystems that support the
529 .B XFS_IOC_FILE_EXTENT_SAME
530 or
531 .B BTRFS_IOC_FILE_EXTENT_SAME
532 ioctls, map
533 .I length
534 bytes at offset
535 .I dst_offset
536 in the open file to the same physical blocks that are mapped at offset
537 .I src_offset
538 in the file
539 .I src_file
540 , but only if the contents of both ranges are identical. This is known as
541 block-based deduplication. If a program writes into a reflinked block range of
542 either file, the dirty blocks will be cloned, written to, and remapped ("copy
543 on write") in the affected file, leaving the other file(s) unchanged.
544 .RS 1.0i
545 .PD 0
546 .TP 0.4i
547 .B \-C
548 Print timing statistics in a condensed format.
549 .TP
550 .B \-q
551 Do not print timing statistics at all.
552
553 .SH MEMORY MAPPED I/O COMMANDS
554 .TP
555 .BI "mmap [ " N " | [[ \-rwx ] " "offset length " ]]
556 With no arguments,
557 .B mmap
558 shows the current mappings. Specifying a single numeric argument
559 .I N
560 sets the current mapping. If two arguments are specified (a range specified by
561 .I offset
562 and
563 .IR length ),
564 a new mapping is created spanning the range, and the protection mode can
565 be given as a combination of PROT_READ
566 .RB ( \-r ),
567 PROT_WRITE
568 .RB ( \-w ),
569 and PROT_EXEC
570 .RB ( \-x ).
571 .TP
572 .B mm
573 See the
574 .B mmap
575 command.
576 .TP
577 .BI "mremap [ \-f ] [ \-m ] " new_length
578 Changes the current mapping size to
579 .IR new_length .
580 Whether the mapping may be moved is controlled by the flags passed;
581 MREMAP_FIXED
582 .RB ( \-f ),
583 or MREMAP_MAYMOVE
584 .RB ( \-m ).
585 .TP
586 .B mrm
587 See the
588 .B mremap
589 command.
590 .TP
591 .B munmap
592 Unmaps the current memory mapping.
593 .TP
594 .B mu
595 See the
596 .B munmap
597 command.
598 .TP
599 .BI "mread [ \-f | \-v ] [ \-r ] [" " offset length " ]
600 Accesses a segment of the current memory mapping, optionally dumping it to
601 the standard output stream (with
602 .B \-v
603 or
604 .B \-f
605 option) for inspection. The accesses are performed sequentially from the start
606 .I offset
607 by default, but can also be done from the end backwards through the
608 mapping if the
609 .B \-r
610 option in specified.
611 The two verbose modes differ only in the relative offsets they display, the
612 .B \-f
613 option is relative to file start, whereas
614 .B \-v
615 shows offsets relative to the start of the mapping.
616 .TP
617 .B mr
618 See the
619 .B mread
620 command.
621 .TP
622 .BI "mwrite [ \-r ] [ \-S " seed " ] [ " "offset length " ]
623 Stores a byte into memory for a range within a mapping.
624 The default stored value is 'X', repeated to fill the range specified,
625 but this can be changed using the
626 .B \-S
627 option.
628 The memory stores are performed sequentially from the start offset by default,
629 but can also be done from the end backwards through the mapping if the
630 .B \-r
631 option in specified.
632 .TP
633 .B mw
634 See the
635 .B mwrite
636 command.
637 .TP
638 .BI "msync [ \-i ] [ \-a | \-s ] [ " "offset length " ]
639 Writes all modified copies of pages over the specified range (or entire
640 mapping if no range specified) to their backing storage locations.
641 Also, optionally invalidates
642 .RB ( \-i )
643 so that subsequent references to the pages will be obtained from their
644 backing storage locations (instead of cached copies).
645 The flush can be done synchronously
646 .RB ( \-s)
647 or asynchronously
648 .RB ( \-a ).
649 .TP
650 .B ms
651 See the
652 .B msync
653 command.
654 .TP
655 .BI "madvise [ \-d | \-r | \-s | \-w ] [ " "offset length " ]
656 Modifies page cache behavior when operating on the current mapping.
657 The range arguments are required by some advise commands ([*] below).
658 With no arguments, the POSIX_MADV_NORMAL advice is implied (default readahead).
659 .RS 1.0i
660 .PD 0
661 .TP 0.4i
662 .B \-d
663 the pages will not be needed (POSIX_MADV_DONTNEED[*]).
664 .TP
665 .B \-r
666 expect random page references (POSIX_MADV_RANDOM), which sets readahead to zero.
667 .TP
668 .B \-s
669 expect sequential page references (POSIX_MADV_SEQUENTIAL),
670 which doubles the default readahead on the file.
671 .TP
672 .B \-w
673 advises the specified pages will be needed again (POSIX_MADV_WILLNEED[*])
674 which forces the maximum readahead.
675 .RE
676 .PD
677 .TP
678 .B mincore
679 Dumps a list of pages or ranges of pages that are currently in core,
680 for the current memory mapping.
681
682 .SH OTHER COMMANDS
683 .TP
684 .B print
685 Display a list of all open files and memory mapped regions.
686 The current file and current mapping are distinguishable from
687 any others.
688 .TP
689 .B p
690 See the
691 .B print
692 command.
693 .TP
694 .B quit
695 Exit
696 .BR xfs_io .
697 .TP
698 .B q
699 See the
700 .B quit
701 command.
702 .TP
703 .BR lsattr " [ " \-R " | " \-D " | " \-a " | " \-v " ]"
704 List extended inode flags on the currently open file. If the
705 .B \-R
706 option is specified, a recursive descent is performed
707 for all directory entries below the currently open file
708 .RB ( \-D
709 can be used to restrict the output to directories only).
710 This is a depth first descent, it does not follow symlinks and
711 it also does not cross mount points.
712 .TP
713 .BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfS " ]"
714 Change extended inode flags on the currently open file. The
715 .B \-R
716 and
717 .B \-D
718 options have the same meaning as above. The mapping between each
719 letter and the inode flags (refer to
720 .BR xfsctl (3)
721 for the full list) is available via the
722 .B help
723 command.
724 .TP
725 .B freeze
726 Suspend all write I/O requests to the filesystem of the current file.
727 Only available in expert mode and requires privileges.
728 .TP
729 .B thaw
730 Undo the effects of a filesystem freeze operation.
731 Only available in expert mode and requires privileges.
732 .TP
733 .BI "flink " path
734 Link the currently open file descriptor into the filesystem namespace.
735 .TP
736 .BI "inject [ " tag " ]"
737 Inject errors into a filesystem to observe filesystem behavior at
738 specific points under adverse conditions. Without the
739 .I tag
740 argument, displays the list of error tags available.
741 Only available in expert mode and requires privileges.
742 .TP
743 .BI "resblks [ " blocks " ]"
744 Get and/or set count of reserved filesystem blocks using the
745 XFS_IOC_GET_RESBLKS or XFS_IOC_SET_RESBLKS system calls.
746 Note \-\- this can be useful for exercising out of space behavior.
747 Only available in expert mode and requires privileges.
748 .TP
749 .BR shutdown " [ " \-f " ]"
750 Force the filesystem to shutdown (with or without flushing the log).
751 Only available in expert mode and requires privileges.
752 .TP
753 .BR stat " [ " \-v " ]"
754 Selected statistics from
755 .BR stat (2)
756 and the XFS_IOC_GETXATTR system call on the current file. If the
757 .B \-v
758 option is specified, the atime (last access), mtime
759 (last modify), and ctime (last change) timestamps are also displayed.
760 .TP
761 .B statfs
762 Selected statistics from
763 .BR statfs (2)
764 and the XFS_IOC_FSGEOMETRY
765 system call on the filesystem where the current file resides.
766 .TP
767 .BR chproj " [ " \-R | \-D " ]"
768 Modifies the project identifier associated with the current path. The
769 .B \-R
770 option will recursively descend if the current path is a directory. The
771 .B \-D
772 option will also recursively descend, only setting modifying projects
773 on subdirectories. See the
774 .BR xfs_quota (8)
775 manual page for more information about project identifiers.
776 .TP
777 .BR lsproj " [ " \-R | \-D " ]"
778 Displays the project identifier associated with the current path. The
779 .B \-R
780 and
781 .B \-D
782 options behave as described above, in
783 .B chproj.
784 .TP
785 .BR parent " [ " \-cpv " ]"
786 By default this command prints out the parent inode numbers,
787 inode generation numbers and basenames of all the hardlinks which
788 point to the inode of the current file.
789 .RS 1.0i
790 .PD 0
791 .TP 0.4i
792 .B \-p
793 the output is similar to the default output except pathnames up to
794 the mount-point are printed out instead of the component name.
795 .TP
796 .B \-c
797 the file's filesystem will check all the parent attributes for consistency.
798 .TP
799 .B \-v
800 verbose output will be printed.
801 .RE
802 .IP
803 .B [NOTE: Not currently operational on Linux.]
804 .PD
805
806 .SH SEE ALSO
807 .BR mkfs.xfs (8),
808 .BR xfsctl (3),
809 .BR xfs_bmap (8),
810 .BR xfs_db (8),
811 .BR xfs (5),
812 .BR fdatasync (2),
813 .BR fstat (2),
814 .BR fstatfs (2),
815 .BR fsync (2),
816 .BR ftruncate (2),
817 .BR mmap (2),
818 .BR msync (2),
819 .BR open (2),
820 .BR pread (2),
821 .BR pwrite (2),
822 .BR readdir (3).