Enabled -hardlinks for options -extract, -extract_l and -cp*x

This commit is contained in:
2009-05-26 14:00:54 +00:00
parent 5fcd3217f3
commit 5b13b266db
6 changed files with 1052 additions and 147 deletions

View File

@ -104,6 +104,8 @@ struct XorrisO { /* the global context of xorriso */
unique ones for all loaded IsoNode.
bit1= at image generation time:
Do not consolidate suitable nodes to hardlinks.
bit2= at restore-to-disk time:
Do not consolidate suitable nodes to hardlinks.
*/
int do_joliet;
@ -258,6 +260,10 @@ struct XorrisO { /* the global context of xorriso */
int do_auto_chmod; /* 1= eventually temporarily open access permissions
of self-owned directories during restore
*/
int do_restore_sort_lba; /* 1= restore via node_array rather than via
tree traversal. Better read performance,
no directory mtime restore, needs do_auto_chmod
*/
int dialog; /* 0=off , 1=single-line , 2=multi-line */
@ -386,6 +392,10 @@ struct XorrisO { /* the global context of xorriso */
int node_counter;
int node_array_size;
void **node_array;
char **node_targets; /* Memorizes eventual hardlink target paths */
off_t node_targets_availmem;
struct Xorriso_lsT *node_disk_prefixes;
struct Xorriso_lsT *node_img_prefixes;
struct PermiteM *perm_stack; /* Temporarily altered dir access permissions */
@ -541,6 +551,11 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
int Xorriso_rmx(struct XorrisO *xorriso, off_t boss_mem, char *path, int flag);
/* @param flag bit7= return 4 if restore fails from denied permission
do not issue error message
@return <=0 failure , 1 success ,
4 with bit7: permission to create file was denied
*/
int Xorriso_make_tmp_path(struct XorrisO *xorriso, char *orig_path,
char *tmp_path, int *fd, int flag);
@ -551,8 +566,24 @@ int Xorriso_make_tmp_path(struct XorrisO *xorriso, char *orig_path,
int Xorriso_reassure_restore(struct XorrisO *xorriso, char *path, int flag);
/* @param flag bit0= change regardless of xorriso->do_auto_chmod
bit1= desired is only rx
*/
int Xorriso_auto_chmod(struct XorrisO *xorriso, char *disk_path, int flag);
int Xorriso_make_accessible(struct XorrisO *xorriso, char *disk_path,int flag);
/* @param flag bit0= prefer to find a match after *img_prefixes
(but deliver img_prefixes if no other can be found)
*/
int Xorriso_make_restore_path(struct XorrisO *xorriso,
struct Xorriso_lsT **img_prefixes, struct Xorriso_lsT **disk_prefixes,
char img_path[SfileadrL], char disk_path[SfileadrL], int flag);
int Xorriso_restore_make_hl(struct XorrisO *xorriso,
char *old_path, char *new_path, int flag);
int Xorriso_protect_stdout(struct XorrisO *xorriso, int flag);
@ -609,8 +640,6 @@ int Xorriso_path_setfattr(struct XorrisO *xorriso, void *in_node, char *path,
int Xorriso_status_result(struct XorrisO *xorriso, char *filter, FILE *fp,
int flag);
int Xorriso_destroy_node_array(struct XorrisO *xorriso, int flag);
int Sfile_str(char target[SfileadrL], char *source, int flag);
double Sfile_microtime(int flag);