This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unable to delete directory in Cygwin


On 6/19/06, mwoehlke wrote:
Larry Hall (Cygwin) wrote:
> mwoehlke wrote:
>> Eric Blake wrote:
>>> That said, cygwin does try to emulate linux, and if someone were to
>>> contribute a patch that would allow cygwin to emulate directory deletion
>>> if it knows that all open handles have also been scheduled for unlinking
>>> at process end, then http://cygwin.com/acronyms/#PTC.
>>
>> Not a patch, but for the record, it looks like Interix solves this
>> problem (http://www.interopsystems.com/tools/tm.aspx?m=9403). Maybe
>> Cygwin could do something similar?
>>
>> (And in case that link dies; apparently Interix has a special 'temp'
>> directory where "unlinked" files are sent until their handles are all
>> closed.)
>
> If you take a look at the cygwin sources, you'll see that Cygwin does
> something similar already.  This does not solve the problem for those
> that want to unlink and immediately recreate the unlinked entry though...

I'm confused. As I read the post, if I create a file 'bar' in '/foo',
open the file, and then 'rm -rf /foo', I can't do that. If Cygwin
"magically redirects" 'bar' to some special place, wouldn't that
a: allow me to unlink '/foo'
b: allow me to then create a new (and different) '/foo/bar'?

Yes, in both cases. However, cygwin doesn't do this magic redirection. What it does do, as far as I understand it, is that it adds files that have deletion syscalls called on them to a pending-deletion list, returns success to the deleter, and then deletes the file at the first chance it gets. I had a go at making a "magic redirection" patch a while ago, but never got it into submittable form.

I also do not see anywhere that the OP is even trying to do [b].

With the current cygwin, you don't get that far, since the file bar still exists until it's no longer in use, and the pending-delete stuff doesn't happen for directories.

Take a look at winsup/cygwin/delqueue.cc , especially the initial
FIXME comment....

L

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]