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:
2024-11-03 20:04:54 +01:00
parent 923bfa0be9
commit 32bfa95973
25 changed files with 1168 additions and 214 deletions

View File

@ -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);