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: rm -rf cannot delete the upmost directory level anymore on a Novell share


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


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