Commit graph

581 commits

Author SHA1 Message Date
Olga Kornievskaia
cba20eeff4 [cosmetic] printing process id in hex in print_error 2012-02-28 15:59:14 -05:00
Olga Kornievskaia
44df987734 updating attrs in nonpnfs file_sync4 writes
when we are doing non-pnfs and writing to a netapp filer, even though we
write UNSTABLE it returns us FILE_SYNC4. since we were doing unstable
writes we were not sending getattrs, and since the data servers we returning
stable commits we didn't send commit. in doing so, we never update our
attribute cache and had a wrong file size.
2012-02-28 14:18:51 -05:00
Olga Kornievskaia
47ff10aa57 [acl] return a write delegation on setacl
we were only returning a read delegation, when we try to do a setacl.

at cthon2012, we were getting cb_recalls when we had a write delegation.
2012-02-28 14:14:26 -05:00
Olga Kornievskaia
88d6678f93 [driver] fixing multiple mount bug
When the client has an existing mount but for a different security context
and the new mount fails, don't free up the mount array for a given NetRoot.
2012-02-28 14:07:10 -05:00
Olga Kornievskaia
90c1137f85 [cosmetic] adding missing DEBUG_MOUNT define 2012-02-28 14:04:56 -05:00
Casey Bodley
ef3a700d5b recovery: always send RECLAIM_COMPLETE on client recovery
client was previously only sending RECLAIM_COMPLETE during grace period.  the spec mandates that RECLAIM_COMPLETE be sent before any non-reclaim locking operations, regardless of grace period.  when recovery code detects a NFS4ERR_NO_GRACE error, send RECLAIM_COMPLETE immediately before attempting any out-of-grace recovery

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-28 12:14:03 -05:00
Casey Bodley
a085a8979b deleg: fix for attributes in CB_GETATTR
CB_GETATTR specifies the delegation by filehandle, but deleg_fh_cmp() was comparing superblock and fileid.  renamed deleg_fh_cmp() to deleg_file_cmp(), and created new deleg_fh_cmp() to compare actual filehandles

call to nfs41_attr_cache_lookup() was not setting flags in info.attrmask, so the change and size attributes were not being encoded in the CB_GETATTR response

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-28 12:13:56 -05:00
Casey Bodley
103124377a cosmetic: less spam from CB_RECALL
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-28 12:13:47 -05:00
Casey Bodley
afd1a3c0db readdir: removed unused readdir_upcall_args.buf
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-28 12:13:27 -05:00
Olga Kornievskaia
0322f53cce make io offset unsigned 2012-02-28 12:11:01 -05:00
Casey Bodley
294f30baec deleg: release reference in nfs41_delegation_getattr()
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-16 12:09:17 -05:00
Olga Kornievskaia
75c96068e9 [driver] changing error return values
instead of returning STATUS_INVALID_PARAMETER, return STATUS_NOT_SUPPORTED
for query classes we don't support in volume and file queries.
2012-02-16 11:54:05 -05:00
Olga Kornievskaia
60b73b282d lowering default debug level to 1 2012-02-16 11:07:37 -05:00
Olga Kornievskaia
5d60157e7c [driver] setting default printouts 2012-02-16 11:07:18 -05:00
Olga Kornievskaia
73294dff68 respecting FILE_WRITE_THROUGH flag on open 2012-02-16 11:06:31 -05:00
Olga Kornievskaia
0285d46a26 timing out an upcall after 2mins 2012-02-16 11:06:19 -05:00
Olga Kornievskaia
7d19a7ffef changing more printouts 2012-02-16 11:05:59 -05:00
Olga Kornievskaia
8adad77d4b more on time-based coherency
changing the code to keeping track of fcbs and not srv_opens.

problem of keeping srv_opens was that we could get an open for
attribute which will then do a setacl which will modify a change
attribute of the file but because the open is not for reading
data we won't have it on the list of opens.
2012-02-14 17:05:42 -05:00
Casey Bodley
fb7c379f06 pnfs: fix for write length returned
fixes an issue introduced by commit 1f7e560a9a, "pnfs: fix for short write on ds error"

when a write is satisfied completely by pnfs, the upcall was returning out_len=0.  the only time i noticed this was against python server, where cp in cygwin would succeed but print 'No space left on device'

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-14 13:27:51 -05:00
Olga Kornievskaia
d42f769bff changing many printouts 2012-02-13 16:08:21 -05:00
Olga Kornievskaia
48d6775211 [driver] fixing wrong upcall size for setattr 2012-02-09 10:36:07 -05:00
Olga Kornievskaia
5b91c662c9 removing unused arg from nfs41_link 2012-02-08 18:33:37 -05:00
Olga Kornievskaia
43424fc653 first stab at time-based data coherency 2012-02-08 18:24:19 -05:00
Olga Kornievskaia
13c3723191 propagating file change attr for setacl 2012-02-08 16:32:04 -05:00
Olga Kornievskaia
cdf31d3ee0 propagating file change attr on setattr 2012-02-08 16:31:17 -05:00
Olga Kornievskaia
aa7a680a40 propagating file change attr on writes 2012-02-08 16:29:25 -05:00
Olga Kornievskaia
ec034e7fd9 propagating file change attr on open 2012-02-08 11:11:09 -05:00
Olga Kornievskaia
3def6f5e24 propagating file change attr on getattr 2012-02-08 11:02:29 -05:00
Casey Bodley
63f499c4b7 cache: check for expiry on nfs41_attr_cache_lookup()
added expiration field to struct attr_cache_entry.  expiration timer is reset whenever attr_cache_update() is called with a 'change' attribute

new function attr_cache_entry_expired() is used by nfs41_attr_cache_lookup() and name_cache_lookup()/entry_invis() to prevent the use of expired attributes

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-02-03 18:26:34 -05:00
Olga Kornievskaia
b779ab07fc add a timestamp printout to upcall 2012-02-03 18:26:18 -05:00
Casey Bodley
e553ede209 deleg: release reference in remove_srvopen()
nfs41_delegation_remove_srvopen() gets a reference to a delegation via delegation_find().  this reference wasn't being released

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-01-31 15:46:22 -05:00
Olga Kornievskaia
918ef9cd3e [libtirpc] fix to cred refresh during cred establishment
if we are in the process of establishing a gss context and failing
to do so, don't try to "refresh" the creds.
2012-01-31 15:46:22 -05:00
Casey Bodley
1b7a5f6c6c adding etc_netconfig to root directory
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-01-20 15:24:59 -05:00
Olga Kornievskaia
fb87e417fc enforcing data consistency
given a delegation type received on open, set buffering flags accordingly.

however, provide -o nocoherence mount options that will enable read/write
buffering regardless
2012-01-20 15:01:11 -05:00
Olga Kornievskaia
c22c2b6080 data cache invalidation on delegation recalls
when we receive a delegation recall, we need to make a downcall
to the kernel and change a buffering/caching policy on this file.

on each open and close we pass an srv_open pointer to the nfsd to
keep in case it receives a cb_recall. we store srv_open in the
delegation state if we got a delegation.
2012-01-19 19:46:03 -05:00
Casey Bodley
909947f07a name cache: bug fix for delegations
when open_update_cache() calls open_delegation_return() to return its delegation, it doesn't update its local variable 'delegation_type' to reflect the new delegation->type.  this causes the next call to nfs41_name_cache_insert() to continue failing

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-01-19 15:25:50 -05:00
Olga Kornievskaia
39e90a7299 bug fix in nfs41_FinalizeVNetRoot
when we didn't create a mount, we don't have a security context to
destroy. in vnetroot creation, initialize session to invalid_handle.
if we fail to mount, then before deleting security context in
nfs41_FinalizeVNetRoot check that session is not invalid_handle.
2012-01-19 15:25:43 -05:00
Olga Kornievskaia
8e0e2d2718 remove erronous permanent disable of ldap lookups 2012-01-19 15:25:37 -05:00
Olga Kornievskaia
03bc4d4c2e adding back unimplemented functions
just in case some of them are required and will cause a kernel crash
if function pointer is dereferenced.
2012-01-18 18:21:28 -05:00
Casey Bodley
50a19f7762 readme: note about nfsd_debug.exe in binary distribution
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2011-12-23 11:42:27 -05:00
Olga Kornievskaia
df523a364e [mount] expose writethru and nocache options 2011-12-22 15:00:47 -05:00
Olga Kornievskaia
a132b8b79c [driver] storing volinfo in devext
instaed of assembling FILE_FS_VOLUME_INFORMATION on every volume
query, story it in device extensions and just copy bytes.
2011-12-22 14:50:53 -05:00
Casey Bodley
ab8a958e35 pnfs: remove code for unused PNFS_THREAD_BY_SERVER
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2011-12-22 12:36:04 -05:00
Olga Kornievskaia
c61849fd14 [driver] fail if fail to impersonate client in nfsd thread 2011-12-22 12:06:44 -05:00
Olga Kornievskaia
790e6239d4 [driver] creating individual unmarshal functions 2011-12-22 11:59:45 -05:00
Olga Kornievskaia
62dfd87bda [driver] using InterlockedIncrement for open_owner_id 2011-12-21 17:42:04 -05:00
Olga Kornievskaia
9efa410e5a [driver] using InterlockedIncrement64 for xid 2011-12-21 17:19:38 -05:00
Olga Kornievskaia
4511dec4b7 [driver] properly release upcall entry lock in downcall
if we fail to allocate memory while processing acl downcall, dont
forget to release the lock on the entry before leaving the function.
2011-12-21 16:50:54 -05:00
Olga Kornievskaia
517db12d34 [driver] properly unlock mdls
when nobody is waiting for the upcall. if it was read/write upcall
unlock readwrite mdl. if it was a readdir upcall, unlock readdir
mdl and also free it.
2011-12-21 16:43:55 -05:00
Olga Kornievskaia
8d52181a3e [driver] delete sec context even if upcall fails 2011-12-21 16:36:39 -05:00