rm -rf cannot delete the upmost directory level anymore on a Novell share

Franz Sirl Franz.Sirl-kernel@lauterbach.com
Thu Oct 20 11:51:00 GMT 2011


Am 2011-10-20 11:20, schrieb Corinna Vinschen:
> On Oct 19 18:43, Franz Sirl wrote:
>> Am 2011-10-19 17:45, schrieb Corinna Vinschen:
>>> On Oct 19 17:12, Franz Sirl wrote:
>>>> sometime between coreutils-7.0 and coreutils-8.4 (sorry, I don't
>>>> have any other in between versions anymore) this simple command
>>>> started to fail:
>>>>
>>>> # mkdir -p lev1/lev2/lev3
>>>> # rm -rfv lev1
>>>> removed directory: `lev1/lev2/lev3'
>>>> removed directory: `lev1/lev2'
>>>> rm: cannot remove `lev1': Device or resource busy
>>>>
>>>> Tested with coreutils-8.10 and cygwin1.dll from the 20111017
>>>> snapshot, as the cygwin1.dll didn't make any difference for the
>>>> problem.
>>>>
>>>> If I just use rm.exe from coreutils-7.0 everything starts to work as
>>>> expected again:
>>>>
>>>> # mkdir -p lev1/lev2/lev3
>>>> # rm -rfv lev1
>>>> removed directory: `lev1/lev2/lev3'
>>>> removed directory: `lev1/lev2'
>>>> removed directory: `lev1'
>>>
>>> The problem is, it works fine on local and remote NTFS, as well as on
>>> Samba.  Since the number of open handles doesn't depend on the underlying
>>> filesystem, why should it fail for NWFS?
>>
>> True. But on the other hand NWFS and NcFsd exercise a lot of pathes
>> in the Cygwin sourcecode that aren't usually used.
>
> Not really a lot.  NWFS is known to have three problems:
>
> - The NtQueryInformationFile(FileBasicInformation) call fails.  This
>    call is only used in circumstance which don't affect NWFS.

I think that still fails with NcFsd, I'll check it.

> - NWFS only supports filenames which follow DOS conventions.  That is,
>    it does not support filenames with leading spaces or trailing dots and
>    spaces.  This is only checked for when generating filenames.

Leading and trailing spaces seem to work, trailing dots fail with 
"Permission denied".

> - NWFS does not support re-opening a file by handle, so it always has to
>    be re-opened by name.  The only difference here is how the
>    OBJECT_ATTRIBUTES is created, with a handle or with a name.

I've worked with Novell to fix that one for NcFsd, will be in one of the 
next releases (IR10 or IR11 I guess).

>> Even between NWFS
>> on XP and NcFsd on Win7 there are differences, because fs.is_nwfs()
>> doesn't trigger on Win7 with the Novell Client (the filesystem name
>> is different).
>
> I don't have access to the various filesystems, so I depend on users
> giving me the required information about exotic filesystems if they wish
> that it will be supported.  For "NcFsd", can you please post the output
> of the `/usr/lib/csih/getVolInfo<path_to_fs>' command?  Also, if you
> haven't already done so, plase create a Cygwin mount point pointing to
> some path on the filesystems and paste the output of the command
> `mount'.  This shows under which filesystem NcFsd is subsumed right now.

$ mount
C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
E: on /cygdrive/e type vfat (binary,posix=0,user,noumount,auto)
F: on /cygdrive/f type ncfsd (binary,posix=0,user,noumount,auto)
G: on /cygdrive/g type ncfsd (binary,posix=0,user,noumount,auto)
H: on /cygdrive/h type ncfsd (binary,posix=0,user,noumount,auto)
I: on /cygdrive/i type ncfsd (binary,posix=0,user,noumount,auto)
J: on /cygdrive/j type ncfsd (binary,posix=0,user,noumount,auto)
K: on /cygdrive/k type ntfs (binary,posix=0,user,noumount,auto)
L: on /cygdrive/l type ncfsd (binary,posix=0,user,noumount,auto)
N: on /cygdrive/n type smbfs (binary,posix=0,user,noumount,auto)
T: on /cygdrive/t type ncfsd (binary,posix=0,user,noumount,auto)

$ /usr/lib/csih/getVolInfo /cygdrive/j
Device Type        : 7
Characteristics    : 30
Volume Name        : <VOL_DEVEL>
Serial Number      : 1549160268
Max Filenamelength : 255
Filesystemname     : <NcFsd>
Flags              : a2
   FILE_CASE_SENSITIVE_SEARCH  : FALSE
   FILE_CASE_PRESERVED_NAMES   : TRUE
   FILE_UNICODE_ON_DISK        : FALSE
   FILE_PERSISTENT_ACLS        : FALSE
   FILE_FILE_COMPRESSION       : FALSE
   FILE_VOLUME_QUOTAS          : TRUE
   FILE_SUPPORTS_SPARSE_FILES  : FALSE
   FILE_SUPPORTS_REPARSE_POINTS: TRUE
   FILE_SUPPORTS_REMOTE_STORAGE: FALSE
   FILE_VOLUME_IS_COMPRESSED   : FALSE
   FILE_SUPPORTS_OBJECT_IDS    : FALSE
   FILE_SUPPORTS_ENCRYPTION    : FALSE
   FILE_NAMED_STREAMS          : FALSE
   FILE_READ_ONLY_VOLUME       : FALSE
   FILE_SEQUENTIAL_WRITE_ONCE  : FALSE
   FILE_SUPPORTS_TRANSACTIONS  : FALSE

The rest of your questions I will answer as soon as the new snapshot is 
available.

Franz.


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



More information about the Cygwin mailing list