Commit graph

506 commits

Author SHA1 Message Date
Olga Kornievskaia
4418ba8b69 fixing open for FILE_SUPERSEDE
http://www.osronline.com/showThread.cfm?link=27213
clarifies that unless open for overwrite_if the old file should be
deleted and then created again.
2012-03-19 15:05:01 -04:00
Olga Kornievskaia
c6ee60b362 [driver] fixing possible app/driver/nfsd race
entry->filename points to something the app address space. if app was
started and the ctrl-ed c, then when nfsd picks up the upcall it should
check if the pointer is still valid
2012-03-19 15:04:59 -04:00
Olga Kornievskaia
863db2735b [open] fix open_if for dir when dir exists 2012-03-19 15:04:57 -04:00
Olga Kornievskaia
540ad44f21 [driver] enforcing filename component length checks
on create, check that provided name has the appropriate filename
length for each directory component.

also check on link and rename
2012-03-19 15:04:56 -04:00
Olga Kornievskaia
d1a05c810e fixing open a file as a directory
we should map this failure to STATUS_NOT_A_DIRECTORY

notepad.exe had been known to do this
2012-03-19 15:04:54 -04:00
Olga Kornievskaia
1a00a0bdce fixing opening dir as a file
open a of a directory with a NON_DIRECTORY_FILE specified should return
FILE_IS_A_DIRECTORY
2012-03-19 15:04:52 -04:00
Olga Kornievskaia
4017b235db handling creating new file for no access
windows can send a create irp with dispostion representing creation
of the file and specify DesiredAccess of 0.

we were treating no data access as lookup but in this case, we still
need to create a file. so send an open with a read access and
request no delegation to be returned.
2012-03-19 15:04:51 -04:00
Olga Kornievskaia
1ea2fb7891 calling asynch cache invalidation always 2012-03-19 15:04:49 -04:00
Olga Kornievskaia
e934484b1f [driver] check for nul reparse point buffer 2012-03-19 15:04:47 -04:00
Olga Kornievskaia
b4a1af0df6 fixing access_mask to nfs allow in open flags 2012-03-19 15:04:46 -04:00
Olga Kornievskaia
77237af0a6 fixing localdomain_name declaration in acl.c 2012-03-19 15:04:44 -04:00
Casey Bodley
d69aa27295 readdir: guarantee that entry_buf_len can fit one entry
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-03-19 15:04:43 -04:00
Olga Kornievskaia
2e1df56572 [readdir] using last_error to convey lack of space 2012-03-19 15:04:41 -04:00
Olga Kornievskaia
3d57b26922 [cosmetic] removed unused define 2012-03-19 15:04:39 -04:00
Olga Kornievskaia
50cdaf6d42 send bind_conn when sr_status_flag.PATH_DOWN is set 2012-03-19 15:04:38 -04:00
Olga Kornievskaia
e891fd141d in rpc_reconnect respect original needcb value 2012-03-19 15:04:36 -04:00
Olga Kornievskaia
a92dd35226 [mount] adding timeout to usage 2012-03-19 15:04:34 -04:00
Casey Bodley
bbb1ed696c license changed to LGPL: added COPYING file, changed source file comments
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-03-19 12:24:43 -04:00
Casey Bodley
6f8f4d8e3f readme: mention nfsd.exe options --uid, --gid
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-03-07 13:07:30 -05:00
Olga Kornievskaia
d62d5dee59 command line options to override default uid/gid values
as of now, not allowing anonymous uid to be 0.

no restrictions on a default gid value.
2012-03-07 11:58:59 -05:00
Olga Kornievskaia
54e17624ab reverting commit 7485d53f64
in comparing server identities, in previous commit we removed
comparison of the returned clientids.

however, running against the emc server, we ran into issues of data
servers retuning the same server major, minor, and scope identities
but different clientids. we then decided that it's the same data
server.
2012-03-06 13:36:42 -05:00
Olga Kornievskaia
b297d2bc78 [libtirpc] removing erronous * from cb_handle structure type
cb_handle was declared as HANDLE * instead of just HANDLE and then
used as HANDLE. However, ran into issues with WaitOnSingleObject(cb_handle)
never returning.
2012-03-06 13:31:32 -05:00
Olga Kornievskaia
4af8bbf362 [pnfs] allow callbacks to data servers 2012-03-05 18:52:06 -05:00
Olga Kornievskaia
f71623bc02 adding a lease-based timeout to upcalls
adding -o timeout=value (in sec) mount option to override a default
timeout value for the upcalls for non-io upcalls. Default timeout is
at least the lease_time seconds of an established mount or 20secs.

read/write upcall also take into account number of bytes for the request
and 100MB/s network speed and 100MB/s disk speed
2012-03-05 17:49:52 -05:00
Olga Kornievskaia
b2f5d3c7a7 fixing printf format values in nfs41_mount 2012-02-29 13:55:40 -05:00
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