Commit Graph

5604 Commits

Author SHA1 Message Date
Rainer Toebbicke
0c39a855a2 viced-copyonwrite-optimization-20090315
LICENSE IPL10
FIXES 124397

optimize CopyOnWrite to avoid rewriting data if possible
2009-03-15 18:50:00 +00:00
Chaskiel M Grundman
6308037dec cellservdb-proc-file-glocking-20090315
LICENSE IPL10
FIXES 124407

hold GLOCK appropriately when dealing with the proc file
2009-03-15 18:42:13 +00:00
Mike Meffie
5102d56f08 viced-improve-host-hashing-20090315
LICENSE IPL10
FIXES 124447

hash based on host byte order so intel machines aren't sad
2009-03-15 18:30:41 +00:00
Mike Meffie
fd6d954e95 butc-xbsa-buffersize-20090315
LICENSE IPL10
FIXES 124425

restrict buffer size to allow for header space
2009-03-15 18:19:15 +00:00
Chaskiel M Grundman
22c5edb1b2 solaris-avoid-returning-einval-if-possible-20090315
LICENSE IPL10
FIXES 124426

if we have a better error code, return it.
2009-03-15 18:13:25 +00:00
Derrick Brashear
fd9e5ffb46 aklog-old-principal-conversion-sans-524-20090315
LICENSE IPL10

we'll want to fix this differently later; since 524 is dying perhaps we need
to just ship heimdal's version of this code
2009-03-15 18:02:31 +00:00
Jeffrey Altman
d0e4044cfe windows-afsd-reset-acl-cache-20090312
LICENSE MIT

Modify the cm_ResetACLCache interface to accept an optional cm_cell_t *.
At the moment every time a token is set or cleared all of the acl info
for all cm_scache_t objects regardless of cell is reset.  This is both
a performance hit and unnecessary.  If we know the cell, only reset
the acl info for cm_scache_t objects in that cell.

If cell is not specified, reset for all cells.
2009-03-14 04:59:23 +00:00
Jeffrey Altman
8e01e5a4db windows-afsd-unlock-20090312
LICENSE MIT

Modify the cm_Unlock() interface to support the ability to unlock all
locks within a range.  This is required for the redirector.
2009-03-14 04:54:59 +00:00
Jeffrey Altman
7ca2785f53 windows-freelance-20090312
LICENSE MIT

correct error in windows-freelance-20090223.  use cpath not filename
since that is why we allocated cpath in the first place.
2009-03-14 04:51:11 +00:00
Jeffrey Altman
ef81e9395c windows-afsd-callback-20090312
LICENSE MIT

use cm_HaveCallback() to check for a call back instead of explicit
checks on cbExpires and cbServerp.  cm_HaveCallback takes into account
Freelance mode and offline status.
2009-03-14 04:49:06 +00:00
Jeffrey Altman
15d4dd0f70 windows-afsd-btree-20090313
LICENSE MIT

Change cm_BPlusDirEnumerate interface to include a 'FetchStatus'
parameter.  When set to 0, we do not fetch status for fids for
which we do not already have status info.  This avoids unnecessary
recycling of cm_scache_t objects.
2009-03-14 04:45:22 +00:00
Matt Benjamin
77452db304 dumpcallbackstate-64bit-timet-safe-20090310
LICENSE IPL10
FIXES 124451

on 64 bit platforms, 64 bit time_t means returning into afs_int32 is bad
2009-03-10 19:21:12 +00:00
Jeffrey Altman
581fd18bd9 avoid-blocking-with-connhashtable-lock-in-reapconnections-20090307
LICENSE BSD

instead of potentially blocking waiting for a call lock, assume if the call is
locked, the conn is still busy. also, don't even try to get the conn data lock
if we don't need to
2009-03-07 14:10:23 +00:00
Jeffrey Altman
19ffc146fa windows-afsd-server-uuid-20090301
LICENSE MIT

Unlike the unix cache manager, on Windows the server uuid was not
recorded as part of the cm_server object.  This commit adds the uuid
and a flag to indicate if it is set or not.

A check is made in cm_UpdateVolumeLocation it confirm that the uuid
known to the CM is the same as the one being reported by the vl server.
If they differ, this is logged but no action is taken.

The contents of the cm_allServers list is now dumped in response to
"fs memdump" or a crash.  This includes the uuid, addr, type, flags,
downtime, caps, etc.

The server uuid is not useful at the moment because there is nothing
that the CM can use it for.  However, it might be useful for debugging
and it will be needed for extended callback support.
2009-03-02 04:44:43 +00:00
Jeffrey Altman
5d14735126 window-afsd-bad-version-20090228
LICENSE MIT

create a new cpp symbol CM_SCACHE_VERSION_BAD to represent data version
values in cm_scache objects that are known to be invalid.

then consistently apply this value throughout the code.  Previously
some invalid values were set to 0 and others to -1 (0xFFFFFFFF:FFFFFFFF).

Also fix at least one location where CM_BUF_VERSION_BAD was not used.
2009-02-28 16:19:13 +00:00
Jeffrey Altman
a329712516 windows-afsd-btree-20090228
LICENSE MIT

Change how BPlusDir enumerations behave with regards to bulk stat
operations.  If the number of entries in the enumeration is larger
than the number of cm_scache objects, then using the previous model
of cm_BPlusDirEnumBulkStat being called for the entire enumeration
list results in the early objects being recycled and the status
info discarded before the caller of cm_BPlusDirNextEnumEntry()
receives the name.

The revised model triggers bulk stat operations from within
NextEnumEntry() as objects requiring status fetching are about
to be returned to the caller.  This reduces the thrashing of the
stat cache.

We should consider adding a flag field to cm_BPlusDirEnumerate()
or cm_BPlusDirNextEnumEntry() to permit enumeration without
status fetching.
2009-02-28 15:40:56 +00:00
Jeffrey Altman
fbfaaf2689 windows-afsd-error-map-20090227
LICENSE MIT

do not permit VNOSERVICE or VOFFLINE or VSALVAGE to leak and
be returned as an error code.  The resulting NTSTATUS is not valid.
2009-02-27 07:26:35 +00:00
Jeffrey Altman
ab0691760f windows-tests-torture-20090226
LICENSE MIT

fix error message

create a file of the specified size
2009-02-26 17:46:32 +00:00
Jeffrey Altman
3c1f858208 windows-freelance-20090223
LICENSE MIT

Fix another set of edge cases where adding a mountpoint or symlink
to the Freelance volume would result in the wrong fid being returned
to the request that made the addition.

When the Freelance directory is updated, invalidate the cm_scache_t object.
that is associated with it.

Actually use the data version when checking callback status.

The return value from Add Mount/Symlink is not negative on failure.
Its an actual error code.  Treat it that way.
2009-02-24 05:06:23 +00:00
Jeffrey Altman
80faa5e93d windows-getrootcellname-20090223
LICENSE MIT

do not mix and match CELL_MAXNAMELEN and MAXCELLCHARS.  They are
not the same.
2009-02-23 14:28:32 +00:00
Russ Allbery
f83cfcafcb libafs-tree-clean-target-20090221
LICENSE IPL10

Add clean and distclean targets to the libafs_tree Makefile, based on
suggestions by jhutz.
2009-02-21 20:51:08 +00:00
Mike Meffie
2290db5f16 linux-module-build-test-configure-fix-20090221
LICENSE IPL10
FIXES 124381

deal when the module link warning has extra characters
2009-02-21 15:36:39 +00:00
Jeffrey Altman
8382f8ccb1 windows-smb-misc-20090220
LICENSE MIT

Fix smb_FindFIDByScache() to avoid obtaining the smb_fid_t.mx and
smb_rctLock out of order.  Doing so requires obtaining references
on each smb_fid_t belonging to the smb_vc_t in order to prevent them
from being removed from the list while the list is being walked.

Reorder tests for CM_SCACHEFLAG_DELETED and smb_fid_t.scp to make
them more efficient and consistent.

When processing Tran2SetPathInfo do not fail because an smb_fid_t
cannot be found for the path object.  The PathInfo function is
being used because we do not have a file descriptor.  Most importantly
do not fail by returning success.
2009-02-21 04:26:43 +00:00
Jeffrey Altman
54a3c85ae4 windows-rename-cross-dir-invalid-handle-20090220
LICENSE MIT

Problems with the cm_Rename() functions:

 * when a rename occurs across directories, the file server allocates
   a new vnode which in turn alters the FID.  Since the new FID and
   potentially version number is unknown to the client, it is not
   possible to update the target directory with the new name and
   FID thereby avoiding reading the directory from the file server.

 * when the old vnode is removed, the callback is broken but the
   client did not discard the cm_scache_t object

In order to optimize the client cache AFS requires a RXAFS_RenameEx
rpc that is equivalent to the current RPC but returns the new FID
and status.  This would permit the cache manager to relabel the
data buffers and cm_scache_t that are known to contain valid data.
2009-02-21 04:19:23 +00:00
Asanka Herath
4eb808d26b smb-vc-reset-on-request-20090218
LICENSE MIT

When processing SMB_SESSION_SETUP_ANDX in smb_ReceiveV3SessionSetupX
it is possible that the smb client might indicate that it requires an
Mpx Count greater than we are configured to support.  If so, log it
to the Windows Event Log as a warning.

It is also possible that the client might specify that its maximum
receive buffer is smaller than the SMB_PACKETSIZE.  If so, log it
to the Windows Event Log as a warning.

Finally, if the client specifies a virtual circuit number of zero,
the client thinks this is its first time communicating with us.
In which case we should invalidate all prior virtual circuits.
We also log this request to the Windows Event Log as informational.
2009-02-19 04:04:24 +00:00
Simon Wilkinson
5bd86a09eb windows-64bit-printf-sanity-20090218
LICENSE IPL10
FIXES 124265

don't assume %lld works for 64 bit ints on windows
2009-02-18 17:48:39 +00:00
Peter Tripician
733794b4d8 vos-increment-offline-count-20090218
LICENSE IPL10
FIXES 124333

increment offline volume count, not pointer to it
2009-02-18 17:27:59 +00:00
Derrick Brashear
da8df5ea2c vldb-check-no-bogus-shadow-decl-20090217
LICENSE IPL10

unfussy compilers treat this as a shadow declare; others thankfully as an error
2009-02-17 14:34:18 +00:00
Derrick Brashear
8b74a85b97 aklog-524-vars-20090216
LICENSE IPL10

add missing variables
2009-02-17 14:27:48 +00:00
Jeffrey Altman
b9816e12f7 vclosevnodefiles-ihandle-leak-20090216
LICENSE IPL10
FIXES 124359

don't leak ihandles on close. this isn't a complete fix for the issue
2009-02-17 04:37:27 +00:00
Peter Tripician
846919700b bozo-corefile-timestamp-fix-20090216
LICENSE IPL10
FIXES 124340

output y2k-correct corefile names
2009-02-17 04:32:08 +00:00
Evan Broder
b1f9b4cb5d aklog-use-native-principal-conversion-20090216
LICENSE IPL10
FIXES 124338

use krb5_524_conv_principal instead of doing it potentially wrong ourselves
2009-02-17 04:28:53 +00:00
Chas Williams
8bc58a3d6d macos-10-6-support-20090216
LICENSE IPL10
FIXES 124288

support for (32 bit) macos 10.6. no pam yet
2009-02-17 04:25:10 +00:00
Steven Jenkins
43bcfaf9cc vldb-check-meaningful-return-codes-20090216
LICENSE IPL10
FIXES 124321

make vldb_check have meaningful return codes
2009-02-17 04:16:56 +00:00
Peter Tripician
52f3295d32 fs-lsm-parse-bug-20090226
LICENSE IPL10
FIXES 124319

print correct error on root directory
2009-02-17 03:59:28 +00:00
Marc Dionne
0e05505a89 linux26-bogus-param-define-20090216
LICENSE IPL10
FIXES 124324

remove orphaned define
2009-02-17 03:43:37 +00:00
Tony D'Amato
4817a4a98f redhat-rpms-kernel24-20090216
LICENSE IPL10
FIXES 102673

rewrite make rule for 2.4 kernels
2009-02-17 03:29:22 +00:00
Marc Dionne
f3080eb7c7 rx-head-build-error-20090216
LICENSE IPL10
FIXES 124323

include header so mutex&atomic macros exist
2009-02-17 03:23:27 +00:00
Jeffrey Altman
8e3b67b953 windows-smb-fidp-scp-race-20090212
LICENSE MIT
FIXES 124293

As evident in a crash dump, there is a race surrounding access to the
scp field of the smb_fid_t object.  Not all access was protected by
the smb_fid_t mx and the cm_scache_t object was not always being
reference counted within the accessing function.

This patch ensures that all initial references to the scp object
are performed under the smb_fid_t mx mutex and that the cm_scache_t
is prevented from being recycled by obtaining a local reference.

Finally, CM_ERROR_BADFD is returned as an error if a request begins
after the smb_fid_t scp field has already been cleared by a smb_CloseFID()
call as part of a concurrent request.
2009-02-12 21:44:47 +00:00
Jeffrey Altman
8bb35234aa windows-vmoved-vnovol-failover-20090212
LICENSE MIT
FIXES 124276

A readonly volume with multiple instances was being marked alldown
when one of the instances resulted in VNOVOL because the vldb and
the indicated file server were out of sync.  The cache manager would
then attempt to re-obtain the volume location info from the vldb
for the entire timeout period.

This patch:

adds trace logging to cm_Analyze indicating which server references
are being deleted and which remain in response to a VNOVOL/VMOVED error.

adds trace logging to cm_UpdateVolumeStatusInt showing how the
new volume status value is determined.

corrects cm_Analyze() so that it doesn't corrupt the server reference
list during cm_FreeServerList() calls; doesn't orphan the server reference
list by setting *serverpp to NULL; and only re-obtains the volume info
list once per request.
2009-02-12 21:30:03 +00:00
Jeffrey Altman
1050049411 fix-tsfpq-20090210
LICENSE BSD

avoid transferring more than the number of packets in a queue
2009-02-10 22:42:40 +00:00
Derrick Brashear
c12e2fa019 restore-unix-rxdebug-20090210
LICENSE IPL10

stale fixes from my sandbox
2009-02-10 22:39:58 +00:00
Marc Dionne
c4d5f0a702 rx-atomic-20090209
LICENSE IPL10
FIXES 124322

add parens
2009-02-09 23:15:13 +00:00
Jeffrey Altman
0edbc512b5 rx-writevproc-wrong-type-20090207
LICENSE BSD

In rxi_WritevProc the queueScan that sets RX_PKTFLAG_TQ on the packet
really needs to cast the queue objects to rx_packet instead of rx_call.
Trashing random fields is not a good idea.
2009-02-07 17:22:26 +00:00
Asanka Herath
b842ee3ea5 windows-netidmgr-progress-20090205
LICENSE MIT

add progress reporting to the provider.
2009-02-06 03:13:38 +00:00
Jeffrey Altman
ffdc7c7088 windows-freelance-20090204
LICENSE MIT

set the correct fid vnode/unique values when adding new symlnks and
mount points.
2009-02-05 00:23:54 +00:00
Mike Meffie
58a924fd50 upclient-cleanup-temp-files-20090203
LICENSE IPL10
FIXES 124221

remove tempfiles in the event of a fetching error
2009-02-03 19:44:27 +00:00
Simon Wilkinson
1811577fca rename-internal-gettimeofday-refs-20090203
LICENSE IPL10
FIXES 124259

switch to using fasttime, instead of wrapper
2009-02-03 19:42:14 +00:00
Simon Wilkinson
0ac1e74178 redhat-packaging-non-stable-branches-20090203
LICENSE IPL10
FIXES 124273

make rpm stuff work for other than 1.4.x
2009-02-03 19:37:41 +00:00
Simon Wilkinson
fe3779411e redhat-packaging-updates-20090203
LICENSE IPL10
FIXES 124272

adds fc10, fc11 support
2009-02-03 19:34:10 +00:00