CVS log for xfs-cmds/xfsdump/dump/inomap.c

[BACK] Up to [Development] / xfs-cmds / xfsdump / dump

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.33 / (download) - annotate - [select for diffs], Thu Feb 1 19:20:37 2007 UTC (10 years, 8 months ago) by wkendall
Branch: MAIN
CVS Tags: HEAD
Changes since 1.32: +8 -0 lines
Diff to previous 1.32 (colored)

Issue a sync call before doing the initial inode scan so that
any inode changes in the inode cache are reflected in the bulk
stat calls. This is necessary for incremental dumps to work
properly (i.e. not skip files) so that all inodes changed before
the dump time are included in the dump.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Feb 1 19:16:27 2007 UTC (10 years, 8 months ago) by wkendall
Branch: MAIN
Changes since 1.31: +1 -1 lines
Diff to previous 1.31 (colored)

When using -z, check a file's size against the max dump file size
just before dumping the file, rather than only during the initial scan.

Revision 1.31 / (download) - annotate - [select for diffs], Wed Oct 4 15:37:52 2006 UTC (11 years ago) by wkendall
Branch: MAIN
Changes since 1.30: +8 -1 lines
Diff to previous 1.30 (colored)

The DMF-specific code in xfsdump was taking a shortcut in
estimating the dump size of a file in order to avoid the
cost of reading the DMF extended attribute. This caused
migrating (MIG) files to be identified as dual-state (DUL)
files, which lead to an estimated size of 0 for MIG files
rather than their true size.

In general it's okay for the estimate to be wrong, but there
are a couple of cases where the estimate needs to be as
accurate as possible, even if it means slowing down the
initial inode scan. These cases are 1) multiple dump streams,
since the estmated size is used to determine where to split
the dump, and 2) when excluding files over a certain size
from the dump. Only the second case applies on Linux, since
multiple dump streams are not currently supported.

This mod changes the DMF-specific code to get an accurate
dump size estimate when either of the above cases are in
effect.

Revision 1.30 / (download) - annotate - [select for diffs], Mon Oct 2 18:10:30 2006 UTC (11 years ago) by wkendall
Branch: MAIN
Changes since 1.29: +82 -49 lines
Diff to previous 1.29 (colored)

Change xfsdump to use its inode map to determine the next inode
of interest when doing inode scans. This prevents unecessary
bulkstat calls when dumping only a fraction of a filesystem,
e.g., when doing a subtree or incremental dump.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Jun 6 20:04:08 2006 UTC (11 years, 4 months ago) by wkendall
Branch: MAIN
Changes since 1.28: +132 -668 lines
Diff to previous 1.28 (colored)

Improve subtree dump performance. The old way of doing
subtree dumps was to scan the entire filesystem and
add all inodes to the inomap. The non-selected subtrees
were then recursed over and those inos were effectively
removed from the inomap. The amount of take this takes
if related to the size of the filesystem, not the size
of the subtree(s) being dumped.

The new way of building the inomap for subtree dumps
is to recurse over the selected subtrees and adding
each ino to the dump. There's no need to do a full
filesystem scan to build the inomap, and no need to
scan files that are not in the selected subtree. As
a result this tends to be a 5-10x speedup over the
old method, depending on the size of the subtree
relative to the size of the filesystem.

Revision 1.28 / (download) - annotate - [select for diffs], Tue Jun 6 19:58:50 2006 UTC (11 years, 4 months ago) by wkendall
Branch: MAIN
Changes since 1.27: +406 -419 lines
Diff to previous 1.27 (colored)

The inomap was implemented to all efficient lookups in
increasing ino order. This doesn't work well for dealing
with subtrees, since recursing through subtrees will
result in processing inodes in non-increasing ino order.
Change the inomap lookup routines to use binary search,
and use a cursor to remember where the previous search
ended. This allows fast lookups for random lookups, and
keeps sequential lookups fast as well.

Revision 1.27 / (download) - annotate - [select for diffs], Tue Jun 6 19:55:24 2006 UTC (11 years, 4 months ago) by wkendall
Branch: MAIN
Changes since 1.26: +5 -175 lines
Diff to previous 1.26 (colored)

xfsdump had a set of macros and a set of functions for manipulating
the inomap state bits. xfsrestore had a set of macros to do the same,
although the macros were different. This mod removes the macros for
manipulating inomap state bits and uses the inline functions instead.

Revision 1.26 / (download) - annotate - [select for diffs], Tue Jun 6 19:50:24 2006 UTC (11 years, 4 months ago) by wkendall
Branch: MAIN
Changes since 1.25: +14 -2 lines
Diff to previous 1.25 (colored)

Add a function to call a given callback for each inode group in
the filesystem. Add a callback handler to count the number of
inode groups in the filesystem.

Revision 1.25 / (download) - annotate - [select for diffs], Wed May 24 06:08:55 2006 UTC (11 years, 4 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.24: +1 -1 lines
Diff to previous 1.24 (colored)

Update xfsdump build to use xfs.h instead of libxfs.h, fixing a recent namespace collision on list symbols.
Merge of master-melb:xfs-cmds:26007a by kenmcd.

Revision 1.24 / (download) - annotate - [select for diffs], Tue Feb 7 16:00:26 2006 UTC (11 years, 8 months ago) by wkendall
Branch: MAIN
Changes since 1.23: +132 -67 lines
Diff to previous 1.23 (colored)

Merge in some changes from the IRIX tree. A few minor bug
fixes, but mainly whitespace changes and code reorganization
to line up with IRIX.

Revision 1.23 / (download) - annotate - [select for diffs], Tue Jan 31 15:47:31 2006 UTC (11 years, 8 months ago) by wkendall
Branch: MAIN
Changes since 1.22: +168 -40 lines
Diff to previous 1.22 (colored)

This mod adds a number of optimizations to increase the
performance of xfsdump and xfsrestore, especially on filesystems
with millions of inodes. Many small changes were made to
minimize the number of system calls required per inode.
Significant changes to xfsdump:
- Cache the gen number of each inode during the initial inode
  scan so that a bulkstat single does not need to be done for
  each inode when dumping directories.
- No longer retrieve the DMF attribute when estimating the dump
  size of a file. Use information from the bulkstat instead.
- Retrieve DMF attribute by handle instead of doing
  open/attr_getf/close.
- In determining where to split multi-stream dumps, take into
  consideration the number of files and not just the file size.
  This allows filesystems with large amounts of inodes but
  relatively little data (DMF filesystem) to be split correctly.
Significant changes to xfsrestore:
- Buffer writes to the namreg file to eliminate 2 very small
  write system calls per directory entry.
- Buffer writes to dirattr file to eliminate a small write system
  call per directory.
- Speedup the check to see if a particular window of the tree
  file is mapped. This allows xfsrestore to use more, smaller
  windows which is beneficial if we can't fit them all in memory
  and have to start unmapping them. This also makes the -w
  option obsolete so that option now has no effect.
- Change the hash function to give a better distribution among
  the hash buckets.
- Do not make an unnecessary unlink call if the file being
  restored does not already exist.

Revision 1.22 / (download) - annotate - [select for diffs], Thu Jan 26 19:45:49 2006 UTC (11 years, 8 months ago) by wkendall
Branch: MAIN
Changes since 1.21: +7 -0 lines
Diff to previous 1.21 (colored)

Update xfsdump man page to explain how to use chattr
to exclude subtrees from a dump. Also deprecate the
usage of the SGI_XFSDUMP_SKIP_FILE extended attr as
a method for tagging files to be skipped. For now
just print a warning if the attribute is found and
still skip the file; down the road we can stop checking
for the attribute entirely.

Revision 1.21 / (download) - annotate - [select for diffs], Thu Nov 10 22:05:47 2005 UTC (11 years, 11 months ago) by wkendall
Branch: MAIN
Changes since 1.20: +0 -10 lines
Diff to previous 1.20 (colored)

Change xfsdump and xfsrestore to unconditionally compile support for
extended attributes and DMAPI event flags.

Noticed some code which would revert to an old media format if the
user requested that extended attributes not be dumped. The intention
being to make the dumps compatible with old xfsrestores (really old
now). But using the old media format means that holes will not be
efficiently encoded in the dump. So I'm removing this code so that
we always dump in the current media format.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Nov 9 05:04:17 2005 UTC (11 years, 11 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.19: +14 -28 lines
Diff to previous 1.19 (colored)

Update copyright annotations and license boilerplates to correspond with SGI Legals preferences.
Merge of master-melb:xfs-cmds:24334a by kenmcd.

Revision 1.19 / (download) - annotate - [select for diffs], Mon Jan 5 17:08:20 2004 UTC (13 years, 9 months ago) by alkirkco
Branch: MAIN
Changes since 1.18: +11 -1 lines
Diff to previous 1.18 (colored)

Add support to properly dump and restore the new inode flags:
immutable, append, sync, noatime and nodump.  Add all inode
flags, new and old, to the list defined in _mk_fillconfig_ea()
of cmd/xfstests/common.dump.  Test 063 can be used to verify
the proper backup and restore of these flags.  Also update man
pages to 1) remove reference to miniroot (IRIX-only), 2) document
the new XFS_XFLAG_NODUMP inode flag as the preferred method to
exclude files, and 3) better describe how the media inventory
files can be used.

The code for the inode flags was contributed by Ethan Benson,
with copyright assignment obtained by Nathan Scott.
Add code to honour new XFS_XFLAG_NODUMP inode flag.
This will becom the 'preferred' method to exclude files.
The old-style extended attribute, SGI_XFSDUMP_SKIP_FILE,
will still be supported (don't break backward compatibility).

Revision 1.18 / (download) - annotate - [select for diffs], Tue Apr 29 01:52:34 2003 UTC (14 years, 5 months ago) by nathans
Branch: MAIN
CVS Tags: XFS-1_3_0pre1
Changes since 1.17: +3 -3 lines
Diff to previous 1.17 (colored)

Fix includes to not be relative to paths provided by -I directives, for
the xfsprogs and xfsdump builds.  At this stage still provide these gcc
options in the build but later that can be removed too now that headers
are clean.

Revision 1.17 / (download) - annotate - [select for diffs], Thu Dec 19 22:44:59 2002 UTC (14 years, 10 months ago) by nathans
Branch: MAIN
Changes since 1.16: +49 -47 lines
Diff to previous 1.16 (colored)

I18N support for xfsdump package.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Jun 4 23:07:56 2002 UTC (15 years, 4 months ago) by sandeen
Branch: MAIN
Changes since 1.15: +1 -1 lines
Diff to previous 1.15 (colored)

Update copyright dates (again)

Revision 1.15 / (download) - annotate - [select for diffs], Tue Jun 4 22:53:09 2002 UTC (15 years, 4 months ago) by sandeen
Branch: MAIN
Changes since 1.14: +1 -1 lines
Diff to previous 1.14 (colored)

Undoes mod:     xfs-cmds:slinx:120772a
Undo xfs-cmds:slinx:120772a, inadvertently whacked a previous mod.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Jun 4 17:58:21 2002 UTC (15 years, 4 months ago) by sandeen
Branch: MAIN
Changes since 1.13: +1 -1 lines
Diff to previous 1.13 (colored)

Update copyright dates

Revision 1.13 / (download) - annotate - [select for diffs], Wed May 8 04:29:55 2002 UTC (15 years, 5 months ago) by tes
Branch: MAIN
Changes since 1.12: +1 -1 lines
Diff to previous 1.12 (colored)

2.0.2 change for xfsdump -e change where we now need to
test for ERANGE for skip EA.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Feb 25 22:09:00 2002 UTC (15 years, 7 months ago) by nathans
Branch: MAIN
Changes since 1.11: +0 -1 lines
Diff to previous 1.11 (colored)

Merge of xfs-cmds-2.4.18:slinx:111137a by nathans.

  remove no longer used files.

Revision 1.11 / (download) - annotate - [select for diffs], Fri Jan 11 07:51:08 2002 UTC (15 years, 9 months ago) by tes
Branch: MAIN
Changes since 1.10: +19 -6 lines
Diff to previous 1.10 (colored)

If inomap is obviously out of date during supprt_prune(), then
don't cause an assertion failure, just update the inode map to
the latest stat info.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Nov 14 07:26:20 2001 UTC (15 years, 11 months ago) by ivanr
Branch: MAIN
Changes since 1.9: +53 -5 lines
Diff to previous 1.9 (colored)

add ability to exclude files based on an extended attribute

Revision 1.9 / (download) - annotate - [select for diffs], Mon Oct 8 06:55:49 2001 UTC (16 years ago) by ajag
Branch: MAIN
Changes since 1.8: +1 -0 lines
Diff to previous 1.8 (colored)

wrap previously missed call to exit()

Revision 1.8 / (download) - annotate - [select for diffs], Fri Sep 28 09:49:27 2001 UTC (16 years ago) by fsgqa
Branch: MAIN
Changes since 1.7: +11 -11 lines
Diff to previous 1.7 (colored)

time32_t changes

Revision 1.7 / (download) - annotate - [select for diffs], Tue Sep 18 05:36:14 2001 UTC (16 years, 1 month ago) by tes
Branch: MAIN
Changes since 1.6: +40 -0 lines
Diff to previous 1.6 (colored)

adds some diagnostics

Revision 1.6 / (download) - annotate - [select for diffs], Tue Jul 24 06:55:40 2001 UTC (16 years, 2 months ago) by nathans
Branch: MAIN
Changes since 1.5: +34 -17 lines
Diff to previous 1.5 (colored)

merge in several missing fixes from IRIX.

Revision 1.5 / (download) - annotate - [select for diffs], Fri Jul 20 08:18:35 2001 UTC (16 years, 3 months ago) by nathans
Branch: MAIN
Changes since 1.4: +0 -1 lines
Diff to previous 1.4 (colored)

remove a broken assertion checked in yesterday.

Revision 1.4 / (download) - annotate - [select for diffs], Thu Jul 19 01:00:14 2001 UTC (16 years, 3 months ago) by nathans
Branch: MAIN
Changes since 1.3: +185 -91 lines
Diff to previous 1.3 (colored)

merge fix for pv 781558 (phase 3 performance), change mallocs back to
memaligns as in IRIX.

Revision 1.3 / (download) - annotate - [select for diffs], Thu Jul 5 08:42:14 2001 UTC (16 years, 3 months ago) by tes
Branch: MAIN
Changes since 1.2: +7 -1 lines
Diff to previous 1.2 (colored)

Print out the inode#s that were in violation.
This has been done in answer to a reported assertion failure.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Feb 9 07:45:14 2001 UTC (16 years, 8 months ago) by ajag
Branch: MAIN
CVS Tags: Release-1_0_0, Linux-2_4_5-merge
Changes since 1.1: +8 -8 lines
Diff to previous 1.1 (colored)

No Message Supplied

Revision 1.1 / (download) - annotate - [select for diffs], Mon Jan 15 04:06:20 2001 UTC (16 years, 9 months ago) by nathans
Branch: MAIN

cmd/xfs/dump/dump/inomap.c 1.11 Renamed to cmd/xfsdump/dump/inomap.c

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>