An error occurred fetching the project authors.
- 15 Oct, 2002 1 commit
-
-
Trond Myklebust authored
Further cleanups Separate the static and dynamic filesystem data retrieval calls as per the NFSv3 spec. This also simplifies things for NFSv4, since many of the attributes in the fsinfo+fstat combined call are not mandatory to implement.
-
- 11 Oct, 2002 2 commits
-
-
Trond Myklebust authored
In NFSv3, an RPC is retried if the special error NFSERR_JUKEBOX is received. This generic bit of postprocessing happens invisibly for synchronous RPC's, but in the async case, the ->tk_exit callback must call nfs_async_handle_jukebox() by hand. In NFSv4, we also need generic postprocessing of async RPC's, but the details are different. Therefore, we don't want to call nfs_async_handle_jukebox(); we want to call a different, NFSv4-specific routine. Therefore, we want to move calls to nfs_async_handle_jukebox() out of the "generic" NFS code and into NFSv3-specific routines. This has already been done for async READ and WRITE in the preceding patches, but there is still one outstanding case: the async REMOVE in sillyrename. This patch removes nfs_async_handle_jukebox() from the async sillyrename path, and puts in the NFSv3 ->unlink_done() rpc_op.
-
Trond Myklebust authored
This is a nontrivial change to the NFS client. This patch does for the async WRITE and COMMIT paths what patch 15 did for the async READ path, by defining new nfs_rpc_ops ->setup_write() and ->setup_commit().
-
- 10 Oct, 2002 3 commits
-
-
Trond Myklebust authored
This is a nontrivial change to the NFS client. In this patch, we finish modifying the async READ path so that it is version-agnostic. We define a new nfs_rpc_op ->setup_read(), and move the v2- and v3-specific code in nfs_read_rpcsetup() there. We also have to change nfs_readpage() result so that the 'count' of bytes read is a parameter. The extra parameter means that it can no longer be ->tk_exit(). Instead, it is called from a version-specific ->tk_exit() routine which is set in ->read_setup(). The upshot of all this is that the version-specific part of the async READ path has been encapsulated in a new nfs_rpc_op ->read_setup(), and NFSv4 can share the logic for asynchronous READ's with NFSv2 and v3.
-
Trond Myklebust authored
This patch changes the interface of the ->setattr() nfs_rpc_op so that its first argument is a dentry instead of an inode. [Explanation: The dentry is required because in NFSv4, we may need to OPEN the file before doing the SETATTR. (This is required if the file size is changed as part of the setattr.) Opening the file requires making use of the containing directory's inode.]
-
Trond Myklebust authored
This patch changes the interface of the ->readdir() nfs_rpc_op so that its first argument is a dentry instead of an inode. [Explanation: The dentry is required because in NFSv4, we need to make use of the _parent_ directory's inode. This is because NFSv4 servers no longer return an entry for ".." in the READDIR response, so the client kernel needs to fake this entry, inode number and all.]
-
- 10 Sep, 2002 1 commit
-
-
Art Haas authored
Here are some patches for C99 initializers in fs/nfs. Patches are against 2.5.32.
-
- 28 May, 2002 2 commits
-
-
Trond Myklebust authored
Remove another class of rpciod deadlocks on HIGHMEM systems. Kick habit of keeping pages kmap()ed for the entire duration of NFS read/readdir/readlink operations. Use struct page directly in RPC client data receive buffer. TCP and UDP sk->data_ready() bottom-halves copy (and checksum when needed) data into pages rather than iovecs. atomic_kmap() of single pages is used for the copy. include/linux/xdr.h Declare structure for copying an sk_buff here rather than in xprt.c. Forward declaration of new functions. include/linux/sunrpc/xprt.h RPC client receive buffer changed to use new format 'struct xdr_buf'. net/sunrpc/clnt.c Initialize new format receive buffer. net/sunrpc/sunrpc_syms.c Export xdr_inline_pages(), xdr_shift_buf() net/sunrpc/xdr.c xdr_inline_pages() inlines pages into the receive buffer. xdr_partial_copy_from_skb() replaces csum_partial_copy_to_page_cache() and copy code in tcp_read_request(). Provides sendfile()-style method for copying data from an skb into a struct xdr_buf. xdr_shift_buf() replaces xdr_shift_iovec() for when we overestimate the size of the RPC/NFS header. net/sunrpc/xprt.c Adapt UDP and TCP receive routines to use new format xdr_buf. include/linux/nfs_xdr.h struct nfs_readargs, nfs_readdirargs, nfs_readlinkargs, nfs3_readdirargs, nfs3_readlinkargs all transmit page information. struct nfs_readdirres, nfs_readlinkres, nfs3_readlinkres obsoleted. struct nfs_rpc_ops->readlink(), readdir(), read() now send pages fs/nfs/dir.c Adapt to new format ->readdir(). Avoid kmap() around the RPC call. fs/nfs/read.c Adapt to new format ->read() and struct nfs_readargs. fs/nfs/symlink.c Adapt to new format ->readlink(). fs/nfs/proc.c Convert nfs_proc_readlink(), nfs_proc_readdir(), nfs_proc_read() fs/nfs/nfs2xdr.c Convert XDR routines to transmit page information. Remove duplicate zeroing of pages when server returns a short read. fs/nfs/nfs3proc.c Convert nfs3_proc_readlink(),nfs3_proc_readdir(),nfs3_proc_read() fs/nfs/nfs3xdr.c Convert XDR routines to transmit page information. Remove duplicate zeroing of pages when server returns a short read. Cheers, Trond
-
Trond Myklebust authored
Stop rpciod from deadlocking against itself in map_new_virtual() on HIGHMEM systems. RPC client currently has to keep all pages that are scheduled for transmission kmap()ed into an iovec for the entire duration of the call. We only actually need to kmap() pages while making the (non-blocking) call to sock_sendmsg(). NOTE: When transmitting several pages in one RPC call, sock_sendmsg() requires us to kmap() *all* those pages at the same time. Opens for deadlocks between rpciod and some other process that also kmaps more than 1 page at a time. For the TCP case we can solve later by converting to TCP_CORK+sendpage(). include/linux/sunrpc/xdr.h Introduce 'struct xdr_buf' in order to allow RPC layer to handle pages directly. include/linux/sunrpc/xprt.h: Convert the RPC client send-buffer to the new format. net/sunrpc/clnt.c Initialize the new format RPC send-buffer. net/sunrpc/sunrpc_syms.c Export xdr_encode_pages() net/sunrpc/xdr.c xdr_kmap() kmap()+copy a struct xdr_buf into an iovec array. xdr_kunmap() clean up after xdr_kmap(). xdr_encode_pages() used to inline pages for transmission. net/sunrpc/xprt.c xprt_sendmsg() needs to kmap() the pages into an iovec for transmission. include/linux/nfs_xdr.h struct nfs_writeargs transmits full page information. Convert nfs_rpc_ops->write() to send pages. fs/nfs/write.c Adapt to new format nfs_writeargs / nfs_rpc_ops->write() fs/nfs/proc.c Convert nfs_proc_write(). fs/nfs/nfs2xdr.c Convert nfs_xdr_writeargs() fs/nfs/nfs3proc.c Convert nfs3_proc_write(). fs/nfs/nfs3xdr.c Convert nfs3_xdr_writeargs() Cheers, Trond
-
- 30 Apr, 2002 1 commit
-
-
Dave Hansen authored
This patch takes the BKL out of vfs_readdir() and moves it into the individual filesystems, all 35 of them. I have the feeling that this wasn't done before because there are a lot of these to change and it was a pain to find them all. I definitely got all of those that were defined in the in the structure declaration like this "readdir: fs_readdir;" vxfs_readdir was assigned strangely, but I found it anyway. I also left devfs out of this one. Richard seems confident that devfs has no need for the BKL.
-
- 04 Apr, 2002 1 commit
-
-
Dave Jones authored
Originally by Grant R.Guenther Has had a quick once over by Al, who weeded out one chunk that was unrelated.
-
- 09 Feb, 2002 1 commit
-
-
Dave Jones authored
Big bits first, I'll redo the smaller bits tomorrow after some sleep. Same as last time, rediffed against pre5
-
- 05 Feb, 2002 2 commits
-
-
Linus Torvalds authored
- Jens: better ordering of requests when unable to merge - Neil Brown: make md work as a module again (we cannot autodetect in modules, not enough background information) - Neil Brown: raid5 SMP locking cleanups - Neil Brown: nfsd: handle Irix NFS clients named pipe behavior and dentry leak fix - maestro3 shutdown fix - fix dcache hash calculation that could cause bad hashes under certain circumstances (Dean Gaudet) - David Miller: networking and sparc updates - Jeff Garzik: include file cleanups - Andy Grover: ACPI update - Coda-fs error return fixes - rth: alpha Jensen update
-
Linus Torvalds authored
-