File: [Development] / xfs-cmds / xfsdump / restore / tree.h (download)
Revision 1.8, Thu Nov 10 22:05:47 2005 UTC (11 years, 11 months ago) by wkendall
Branch: MAIN
Changes since 1.7: +0 -2
lines
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.
|
/*
* Copyright (c) 2000-2001 Silicon Graphics, Inc.
* All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it would be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef TREE_H
#define TREE_H
/* tree_init - creates a new tree abstraction.
*/
extern bool_t tree_init( char *hkdir,
char *dstdir,
bool_t toconlypr,
bool_t ownerpr,
xfs_ino_t rootino,
xfs_ino_t firstino,
xfs_ino_t lastino,
size64_t dircnt,
size64_t nondircnt,
size64_t vmsz,
bool_t fullpr,
bool_t restoredmpr,
bool_t largewindowpr,
bool_t dstdirisxfspr );
/* tree_sync - synchronizes with an existing tree abstraction
*/
extern bool_t tree_sync( char *hkdir,
char *dstdir,
bool_t toconlypr,
bool_t fullpr,
bool_t dstdirisxfspr );
/* tree_begindir - begins application of dumped directory to tree.
* returns handle to dir node. returns by reference the dirattr
* handle if new. caller must pre-zero (DAH_NULL).
*/
extern nh_t tree_begindir( filehdr_t *fhdrp, dah_t *dahp );
/* tree_addent - adds a directory entry; takes dirh from above call
*/
extern rv_t tree_addent( nh_t dirh,
xfs_ino_t ino,
size_t gen,
char *name,
size_t namelen );
/* ends application of dir
*/
extern void tree_enddir( nh_t dirh );
#ifdef TREE_CHK
/* tree_chk - do a sanity check of the tree prior to post-processing and
* non-dir restoral. returns FALSE if corruption detected.
*/
extern bool_t tree_chk( void );
#endif /* TREE_CHK */
/* tree_marknoref - mark all nodes as no reference, not dumped dirs, and
* clear all directory attribute handles. done at the beginning
* of the restoral of a dump session, in order to detect directory entries
* no longer needed.
*/
extern void tree_marknoref( void );
/* mark all nodes in tree as either selected or unselected, depending on sense
*/
extern void tree_markallsubtree( bool_t sensepr );
extern bool_t tree_subtree_parse( bool_t sensepr, char *path );
extern bool_t tree_post( char *path1, char *path2 );
extern rv_t tree_cb_links( xfs_ino_t ino,
u_int32_t biggen,
int32_t ctime,
int32_t mtime,
bool_t ( * funcp )( void *contextp,
bool_t linkpr,
char *path1,
char *path2 ),
void *contextp,
char *path1,
char *path2 );
/* called after all dirs have been restored. adjusts the ref flags,
* by noting that dirents not refed because their parents were not dumped
* are virtually reffed if their parents are refed.
*/
extern bool_t tree_adjref( void );
extern bool_t tree_setattr( char *path );
extern bool_t tree_delorph( void );
extern bool_t tree_subtree_inter( void );
extern bool_t tree_extattr( bool_t ( * cbfunc )( char *path, dah_t dah ),
char *path );
/* does a depthwise bottom-up traversal of the tree, calling
* the supplied callback for all directories with a non-NULL dirattr
* handle. The callback will get called with the directory's pathname
* and it dirattr handle. the traversal will be aborted if the
* callback returns FALSE. returns FALSE if operator requests
* an interrupt.
*/
#endif /* TREE_H */