summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2005-06-23[PATCH] NFSv4: Clean up nfs4 lock state accountingTrond Myklebust5-144/+118
Ensure that lock owner structures are not released prematurely. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NLM: fix a client-side race on blocking locks.Trond Myklebust3-50/+96
If the lock blocks, the server may send us a GRANTED message that races with the reply to our LOCK request. Make sure that we catch the GRANTED by queueing up our request on the nlm_blocked list before we send off the first LOCK rpc call. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NLM: cleanup for blocked locks.Trond Myklebust1-12/+6
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] VFS: Ensure that all the on-stack struct file_lock call ↵Trond Myklebust1-0/+6
fl_release_private Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Replace nfs_page insertion sort with a radix sortTrond Myklebust5-74/+107
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Make searching and waiting on busy writeback requests more ↵Trond Myklebust4-18/+45
efficient. Basically copies the VFS's method for tracking writebacks and applies it to the struct nfs_page. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Write optimization for short files and small O_SYNC writes.Trond Myklebust1-3/+11
Use stable writes if we can see that we are only going to put a single write on the wire. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Ensure that fstat() always returns the correct mtimeTrond Myklebust3-14/+39
Even if the file is open for writes. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Cleanup of caching code, and slight optimization of writes.Trond Myklebust3-18/+39
Unless we're doing O_APPEND writes, we really don't care about revalidating the file length. Just make sure that we catch any page cache invalidations. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Fix the file size revalidationTrond Myklebust4-55/+21
Instead of looking at whether or not the file is open for writes before we accept to update the length using the server value, we should rather be looking at whether or not we are currently caching any writes. Failure to do so means in particular that we're not updating the file length correctly after obtaining a POSIX or BSD lock. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Fix up races in nfs4_proc_setattr()Trond Myklebust1-36/+19
If we do not hold a valid stateid that is open for writes, there is little point in doing an extra open of the file, as the RFC does not appear to mandate this... Make setattr use the correct stateid if we're holding mandatory byte range locks. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Ensure that propagate NFSv4 state errors to the reclaim codeTrond Myklebust1-11/+40
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Clean up readdir changes.Trond Myklebust3-39/+48
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Hide NFS server-generated readdir cookies from userlandOlivier Galibert3-24/+95
NFSv3 currently returns the unsigned 64-bit cookie directly to userspace. The following patch causes the kernel to generate loff_t offsets for the benefit of userland. The current server-generated READDIR cookie is cached in the nfs_open_context instead of in filp->f_pos, so we still end up work correctly under directory insertions/deletion. Signed-off-by: Olivier Galibert <galibert@pobox.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: kick off socket connect operations fasterChuck Lever1-1/+8
Make the socket transport kick the event queue to start socket connects immediately. This should improve responsiveness of applications that are sensitive to slow mount operations (like automounters). We are now also careful to cancel the connect worker before destroying the xprt. This eliminates a race where xprt_destroy can finish before the connect worker is even allowed to run. Test-plan: Destructive testing (unplugging the network temporarily). Connectathon with UDP and TCP. Hard-code impossibly small connect timeout. Version: Fri, 29 Apr 2005 15:32:01 -0400 Signed-off-by: Chuck Lever <cel@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: TCP reconnects are too slowChuck Lever1-2/+1
When the network layer reports a connection close, the RPC task waiting to reconnect should be notified so it can retry immediately instead of waiting for the normal connection establishment timeout. This reverts a change made in 2.6.6 as part of adding client support for RPC over TCP socket idle timeouts. Test-plan: Destructive testing with NFS over TCP mounts. Version: Fri, 29 Apr 2005 15:31:46 -0400 Signed-off-by: Chuck Lever <cel@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Clean up socket autodisconnectTrond Myklebust1-2/+2
Cancel autodisconnect requests inside xprt_transmit() in order to avoid races. Use more efficient del_singleshot_timer_sync() Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Ensure rpc calls respects the RPC_NOINTR flagTrond Myklebust1-34/+37
For internal purposes, the rpc_clnt_sigmask() call is replaced by a call to rpc_task_sigmask(), which ensures that the current task sigmask respects both the client cl_intr flag and the per-task NOINTR flag. Problem noted by Jiaying Zhang. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Fix an Oops in the callback code.Trond Myklebust1-1/+0
The changeset "trond.myklebust@fys.uio.no|ChangeSet|20050322152404|16979" (RPC: Ensure XDR iovec length is initialized correctly in call_header) causes the NFSv4 callback code to BUG() due to an incorrectly initialized scratch buffer. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Fix build warningReuben Farrelly1-1/+0
From: Reuben Farrelly <reuben-lkml@reub.net> With gcc-4.0: fs/nfs/nfs4proc.c:2976: error: static declaration of 'nfs4_file_inode_operations' follows non-static declaration fs/nfs/nfs4_fs.h:179: error: previous declaration of 'nfs4_file_inode_operations' was here Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: empty array fixAndrew Morton1-1/+1
Older gcc's don't like this. fs/nfs/nfs4proc.c:2194: field `data' has incomplete type Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: fs/nfs/nfs4proc.c: small simplificationAdrian Bunk1-1/+1
The Coverity checker noticed that such a simplification was possible. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] fix nfsacl pointer arithmetic and pg_class initialization bugsAndreas Gruenbacher2-1/+2
* Pointer arithmetic bug: p is in word units. This fixes a memory corruption with big acls. * Initialize pg_class to prevent a NULL pointer access. Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Fix up v3 ACL caching codeTrond Myklebust2-5/+10
Initialize the inode cache values correctly. Clean up __nfs3_forget_cached_acls() Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Cache the NFSv3 acls.Andreas Gruenbacher3-15/+97
Attach acls to inodes in the icache to avoid unnecessary GETACL RPC round-trips. As long as the client doesn't retrieve any acls itself, only the default acls of exiting directories and the default and access acls of new directories will end up in the cache, which preserves some memory compared to always caching the access and default acl of all files. Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Fix handling of the umask when an NFSv3 default acl is present.Andreas Gruenbacher4-6/+73
NFSv3 has no concept of a umask on the server side: The client applies the umask locally, and sends the effective permissions to the server. This behavior is wrong when files are created in a directory that has a default ACL. In this case, the umask is supposed to be ignored, and only the default ACL determines the file's effective permissions. Usually its the server's task to conditionally apply the umask. But since the server knows nothing about the umask, we have to do it on the client side. This patch tries to fetch the parent directory's default ACL before creating a new file, computes the appropriate create mode to send to the server, and finally sets the new file's access and default acl appropriately. Many thanks to Buck Huppmann <buchk@pobox.com> for sending the initial version of this patch, as well as for arguing why we need this change. Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Add support for NFSv3 ACLsAndreas Gruenbacher13-6/+601
This adds acl support fo nfs clients via the NFSACL protocol extension, by implementing the getxattr, listxattr, setxattr, and removexattr iops for the system.posix_acl_access and system.posix_acl_default attributes. This patch implements a dumb version that uses no caching (and thus adds some overhead). (Another patch in this patchset adds caching as well.) Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSD: Add server support for NFSv3 ACLs.Andreas Gruenbacher16-1/+1166
This adds functions for encoding and decoding POSIX ACLs for the NFSACL protocol extension, and the GETACL and SETACL RPCs. The implementation is compatible with NFSACL in Solaris. Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Allow the sunrpc server to multiplex serveral programs on a ↵Andreas Gruenbacher2-18/+20
single port The NFS and NFSACL programs run on the same RPC transport. This patch adds support for this by converting svc_program into a chained list of programs (server-side). Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Signed-off-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSD: Add NFS3ERR_NOTSUPP to the nfsd error mapping tableAndreas Gruenbacher1-0/+1
Add the missing NFS3ERR_NOTSUPP error code (defined in NFSv3) to the system-to-protocol-error table in nfsd. The nfsacl extension uses this error code. Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Signed-off-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Encode and decode arbitrary XDR arraysAndreas Gruenbacher3-4/+275
Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Olaf Kirch <okir@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: fix accounting bug in the case of a truncated RPC messageTrond Myklebust3-17/+42
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Lazy RPC receive buffer allocationOlaf Kirch3-8/+36
Signed-off-by: Olaf Kirch <okir@suse.de> Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Allow multiple RPC client programs to share the same transportAndreas Gruenbacher4-0/+46
Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Olaf Kirch <okir@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Return -EPFNOSUPPORT for RPC programs that are unavailableAndreas Gruenbacher1-10/+14
Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Signed-off-by: Olaf Kirch <okir@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: [PATCH] improve rpcauthauth_create error returnsJ. Bruce Fields5-20/+35
Currently we return -ENOMEM for every single failure to create a new auth. This is actually accurate for auth_null and auth_unix, but for auth_gss it's a bit confusing. Allow rpcauth_create (and the ->create methods) to return errors. With this patch, the user may sometimes see an EINVAL instead. Whee. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Don't fall back from krb5p to krb5iJ. Bruce Fields1-3/+2
We shouldn't be silently falling back from krb5p to krb5i. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: client-side caching NFSv4 ACLsJ. Bruce Fields3-14/+124
Add nfs4_acl field to the nfs_inode, and use it to cache acls. Only cache acls of size up to a page. Also prepare for up to a page of acl data even when the user doesn't pass in a buffer, as when they want to get the acl length to decide what size buffer to allocate. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: ACL support for the NFSv4 client: writeJ. Bruce Fields1-1/+33
Client-side write support for NFSv4 ACLs. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Client-side xdr for writing NFSv4 aclsJ. Bruce Fields3-1/+78
Client-side support for NFSv4 acls: xdr encoding and decoding routines for writing acls Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: ACL support for the NFSv4 client: readJ. Bruce Fields1-4/+65
Client-side support for NFSv4 ACLs. Exports the raw xdr code via the system.nfs4_acl extended attribute. It is up to userspace to decode the acl (and to provide correctly xdr'd acls on setxattr), and to convert to/from POSIX ACLs if desired. This patch provides only the read support. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Client-side xdr for reading NFSv4 aclsJ. Bruce Fields3-0/+108
Client-side support for NFSv4 acls: xdr encoding and decoding routines for reading acls Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: fix fattr size calculationsJ. Bruce Fields1-7/+11
Make nfs4 fattr size calculations more explicit, revising them downward a bit in the process. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFSv4: Add {get,set,list}xattr methods for nfs4J. Bruce Fields3-1/+48
Add {get,set,list}xattr methods for nfs4. The new methods are no-ops, to be used by subsequent ACL patch. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Add hooks to allow common NFS attribute code to clear cached aclsTrond Myklebust3-7/+28
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Allow NFS versions to support different sets of inode operations.J. Bruce Fields5-1/+5
ACL support will require supporting additional inode operations in v4 (getxattr, setxattr, listxattr). This patch allows different protocol versions to support different inode operations by adding a file_inode_ops to the nfs_rpc_ops (to match the existing dir_inode_ops). Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: cleanup: shrink struct nfs_open_contextTrond Myklebust3-9/+28
Remove the wait queue, and replace the functions that depended on it with wait_on_bit(). Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] RPC: Shrink struct rpc_task by switching to wait_on_bit()Trond Myklebust2-14/+18
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Remove unused NFS inode field readdir_timestamp.Trond Myklebust2-6/+3
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2005-06-23[PATCH] NFS: Header file cleanup...Trond Myklebust13-260/+264
- Move NFSv4 state definitions into a private header file. - Clean up gunk in nfs_fs.h Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>