OK, I've done a bit more research on this problem. The relevant portion of the delete function appears to be, removing some extraneous code:
if (FINDFIRST(fullname, &f, FA_ARCH)) { error_sfile_not_found(fullname); } else do { strcpy(p, f.ff_name); /* Make the full path */ [...] if(verbose && !optP) displayString(TEXT_DELETE_FILE, fullname); if(unlink(fullname) != 0) { perror(fullname); /* notify the user */ } else ++count; } while (FINDNEXT(&f) == 0); FINDFIRST and FINDNEXT are suppl calls to findfirst and findnext which invoke DOS calls (respectively): r.r_ax = 0x4e00; rv = invokeDOS(&r); r.r_ax = 0x4f00; rv = invokeDOS(&r); Is it legal to do an invokeDOS on this interrupt on a non-existent file? The unlink is done before the findnext. There's a test case I may be able to duplicate... I have run this in verbose mode and it only shows the files it is deleting. After the problem initially occurs, it quite consistently deletes the first, third, fifth, etc. files on every subsequent del *.*. This is very repeatable with NTFS4DOS and lots of files to start with. Mark > Good day, all: > > I am having a repeatable problem with > "del *.*" on an NTFS partition mounted by NTFS4DOS. > > I can do a DIR on the directory I am using (\TEMP) and see > 86 files. A "del *.*" deletes 74 of them and yields two > errors: > > E:\TEMP\LICENSE.D32: Invalid Argument > E:\TEMP\SAVE.DBG: Invalid Argument > > (Oddly, these two files ARE deleted). This is with the > development kernel...the debug kernel does not print > these two errors but behaves the same way). > > A subsequent "del *.*" deletes 6 of the twelve files. > A subsequent "del *.*" deletes 3 of the remaining 6 files. > A subsequent "del *.*" deletes 2 of the remaining files. > A subsequent "del *.*" gets the last one. > > This is repeatable. I will start reading FreeCOM code, but does > anyone have any ideas? I also have a report of a wildcard > copy hanging a computer, but I cannot reproduce that one yet. > > This is on the "Haunted HP Pavilion", so clustersize is 2MB. > However, I haven't found any more accesses to bytes_per_sector > in FreeCOM. > > Any ideas? > > Mark Bailey > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Freedos-user mailing list > Freedos-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freedos-user ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user