Experiments about inode number generation for nodes out of the loaded

image.
This commit is contained in:
2009-03-07 08:28:35 +01:00
parent 32dc6dd041
commit 4f468171ad
3 changed files with 104 additions and 7 deletions

View File

@@ -24,6 +24,12 @@ int iso_file_src_cmp(const void *n1, const void *n2)
dev_t dev_id1, dev_id2;
ino_t ino_id1, ino_id2;
#ifdef Libisofs_file_src_cmp_sizE
off_t size1, size2;
#endif /* Libisofs_file_src_cmp_sizE */
f1 = (const IsoFileSrc *)n1;
f2 = (const IsoFileSrc *)n2;
@@ -40,9 +46,31 @@ int iso_file_src_cmp(const void *n1, const void *n2)
return -1;
} else if (dev_id1 < dev_id2) {
return 1;
#ifdef Libisofs_file_src_cmp_sizE
} else if (ino_id1 > ino_id2) {
return -1;
} else if (ino_id1 < ino_id2) {
return 1;
} else {
size1 = iso_stream_get_size(f1->stream);
size2 = iso_stream_get_size(f2->stream);
if (size1 < size2) {
return -1;
} else if (size1 > size2) {
return 1;
}
return 0;
#else /* Libisofs_file_src_cmp_sizE */
} else {
/* files belong to same device in same fs */
return (ino_id1 < ino_id2) ? -1 : (ino_id1 > ino_id2) ? 1 : 0;
#endif /* ! Libisofs_file_src_cmp_sizE */
}
}
}