The cmd.exe "del" command operates by opening a file and then setting
the file disposition to delete on close followed by closing the file.
When the filename is a symlink, the smb_fid_t scp refers to the final
destination object and not the symlink. In smb_CloseFid() the correct
object would be removed from the directory by name, but the wrong cm_scache_t
would be marked deleted. This would result in subsequent references to
the target file being considered invalid.
Fix it by looking up the cm_scache_t of the symlink prior to performing
the deletion.
Add registry value "OfflineReadOnlyIsValid" option. When set to non-zero
value, an offline or down read only volume will be treated as if it has
a valid callback even if it doesn't.
cm_ParseIoctlPath() moves the ioctlp->inDatap past the ioctl path
to the next data value if there is one. Make sure we move the pointer
before we alter the contents of the buffer. Otherwise, the caller
uses the wrong string for its next data blob.
More tweaking of the IoctlPathParsing code.
Add special handling for many more pioctl operations performed on
the Freelance root.afs volume.
Add informative error values for symlink freelance operations.
Add SOFTWARE\OpenAFS\Client AcceptDottedPrincipalNames registry
value to control whether the use of Kerberos v5 principal names
with dots in the first component are permitted.
FIXES 74473
Change "fs uuid" to "fs uuid -generate" where "-generate" is a
required parameter.
This command requires root access to execute it.
Unlike the Windows variant, the UNIX version does not yet support displaying
the current UUID to the user. When this functionality is added, "-generate"
should become an optional parameter.
fix issue where gcc 4.2 compiled kernel modules were breaking on linux
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
with fix from Hans-Werner Pulsen
====================
with fix from Hans-Werner Pulsen
pioctl commands were failing with CM_ERROR_NOSUCHCELL because the
Freelance cell object was not being added to the Cell Name and ID
hash tables.
ParseIoctlPath was not consistently returning the FID of the specified
symlink or mount point object. The was still one more case in which
CM_FLAG_FOLLOW was being specified left over from
windows-parse-ioctl-path-20070629. Changed the use of CM_FLAG_FOLLOW
into a 'follow' variable to ease testing and permit easy migration to
adding a 'follow' parameter to the function.
RXAFS_GetVolumeStatus is always going to fail for Freelance volumes.
Fake the response data.
UpdateVolume() was performing the wrong test for Freelance volumes.
Freelance volumes should not be marked offline even though they have
no servers.
FIXES 72759
This patch removes use of the non-Public ILL structures by OpenAFS to
gather network interface information in order to make RX packet size
and server locality decisions.
Attempts to rename by case only would fail when there are more than
one ambiguous matches. The list of data nodes would be corrupted
and future tree manipulations could result in a crash.
Some cells have a large number of servers listed in the vldb that
no longer exist and/or do not have PTR records in DNS. The algorithm
used to obtain the "server names" from IP addresses involves opening
a cell handle, creating an iterator of all servers, and then iterating
over them until a match is found for the IP address. This is done for
every server reference. Each time the iterator was constructed the
vldb would be queried and gethostbyaddr() would be called on every listed
ip address.
This patch stores a copy of the server list in the cell handle along with
an expiration time generated from a 10 minute TTL. This significant
reduces but does not eliminate the number of times that the caller is
blocked on reverse dns lookups.