New commands -projid, -get_projid, -get_projid_r, -set_projid, -set_projid_r, -find test -has_projid, -find actions get_projid, set_projid, get_projid_minmax
This commit is contained in:
@ -295,6 +295,7 @@ ex:;
|
||||
bit24= hardlink split
|
||||
bit25= hardlink fusion
|
||||
bit26= Linux file attribute mismatch
|
||||
bit27= XFS-style project id mismatch
|
||||
@param flag bit0= compare atime
|
||||
bit1= compare ctime
|
||||
bit2= check only existence of both file objects
|
||||
@ -323,6 +324,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
||||
int split_count= 0;
|
||||
time_t stamp;
|
||||
uint64_t lfa_flags1, lfa_flags2;
|
||||
uint32_t projid1= 0, projid2= 0;
|
||||
|
||||
char *part_path= NULL, *part_name;
|
||||
int partno, total_parts= 0;
|
||||
@ -520,6 +522,25 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
||||
}
|
||||
}
|
||||
|
||||
/* XFS-style project id */
|
||||
if(xorriso->do_aaip & (1 << 17)) {
|
||||
ret= Xorriso_get_projid(xorriso, NULL, disk_adr, &projid1,
|
||||
2 | ((flag & (1 << 28)) >> 23));
|
||||
if(ret < 0)
|
||||
goto ex;
|
||||
ret= Xorriso_get_projid(xorriso, NULL, iso_adr, &projid2, 0);
|
||||
if(ret < 0)
|
||||
goto ex;
|
||||
if(projid1 != projid2) {
|
||||
(*result)|= (1 << 27);
|
||||
sprintf(respt, "%s projid : %lu <> %lu",
|
||||
a, (unsigned long int) projid1, (unsigned long int) projid2);
|
||||
strcat(respt, "\n");
|
||||
if(!(flag & (1u << 31)))
|
||||
Xorriso_result(xorriso, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if(s1.st_uid != s2.st_uid) {
|
||||
sprintf(respt, "%s st_uid : %lu <> %lu\n", a,
|
||||
(unsigned long) s1.st_uid, (unsigned long) s2.st_uid);
|
||||
|
Reference in New Issue
Block a user