diff --git a/src/vol/vol-salvage.c b/src/vol/vol-salvage.c index 1884ebe2c3..7d9be8b238 100644 --- a/src/vol/vol-salvage.c +++ b/src/vol/vol-salvage.c @@ -858,6 +858,12 @@ SalvageFileSys1(struct DiskPartition64 *partP, VolumeId singleVolumeNumber) * semantics of unlink. In most places in the salvager, we really do * mean to unlink the file at that point. Those places have been * modified to actually do that so that the NT crt can be used there. + * + * jaltman - On NT delete on close cannot be applied to a file while the + * process has an open file handle that does not have DELETE file + * access and FILE_SHARE_DELETE. fopen() calls CreateFile() without + * delete privileges. As a result the nt_unlink() call will always + * fail. */ code = nt_unlink(inodeListPath); #else @@ -1181,6 +1187,9 @@ GetInodeSummary(struct SalvInfo *salvinfo, FILE *inodeFile, VolumeId singleVolum * semantics of unlink. In most places in the salvager, we really do * mean to unlink the file at that point. Those places have been * modified to actually do that so that the NT crt can be used there. + * + * jaltman - As commented elsewhere, this cannot work because fopen() + * does not open files with DELETE and FILE_SHARE_DELETE. */ code = nt_unlink(summaryFileName); #else