- 11 Oct, 2002 18 commits
-
-
Neil Brown authored
-
Neil Brown authored
Now that all the hooks are in place, this large patch imports all of the new code for the NFSv4 server. This patch makes almost no changes to the existing nfsd codebase (these have been taken care of by the preceding patches). One aspect of the NFSv4 code deserves comment. The most natural scheme for processing a COMPOUND request would seem to be: 1a. XDR decode phase, decode args of all operations 2a. processing phase, process all operations 3a. XDR encode phase, encode results of all operations However, we use a scheme which works as follows: 1b. XDR decode phase, decode args of all operations 2b. For each operation, process the operation encode the result To see what is wrong with the first scheme, consider a COMPOUND of the form READ REMOVE. Since the last bit of processing for the READ request occurs in XDR encode, we might discover in step 3a that the READ request should return an error. Therefore, the REMOVE request should not be processed at all. This is a fatal problem, since the REMOVE was already been done in step 2a! Another type of problem would occur in a COMPOUND of the form READ WRITE. Assume that both operations succeed. Under scheme (a), the WRITE is actually performed _before_ the READ (since the "real" READ is really done during XDR encode). This is certainly incorrect if the READ and WRITE ranges overlap. These examples might seem a little artificial, but nevertheless it does seem that in order to process a COMPOUND correctly in all cases, we need to use scheme (b) instead of scheme (a). (To construct less artificial examples, just substitute GETATTR for READ in the examples above. This works because the "real" GETATTR is done during XDR encode: one would really have to bend over backwards in order to arrange things otherwise.)
-
Neil Brown authored
NFSv4 need to be able to make from user/group name to user/group id. This include file contains some simple stubs to do this. They will be replaced with something that really works later.
-
Neil Brown authored
This patch changes the 'xdrsize' parameter to svc_create(), to be NFS4_SVC_XDRSIZE if v4 is defined else NFS3_SVC_XDRSIZE if v3 is defined else NFS2_SVC_XDRSIZE (formerly NFSSVC_XDRSIZE) This always works, since NFS4_SVC_XDRSIZE >= NFS3_SVC_XDRSIZE >= NFS2_SVC_XDRSIZE. The value of NFSD_BUFSIZE has also been moved to const.h, since we need the definition available in nfs4proc.c
-
Neil Brown authored
NFSv4 has a concept of a 'root' filehandle (from which all other can be found via LOOKUP, so no need for mountd). This patch defines exp_pseudoroot(), which is used to set the filehandle for the root of the pseudofs. The root is defined to be the export point with fsid == 0.
-
Neil Brown authored
Define fh_dup2(), which copies a _verified_ filehandle, taking care of refcounts accordingly. (This will be used by RESTOREFH/SAVEFH and a few other places.)
-
Neil Brown authored
-
Neil Brown authored
Instantiate a new file include/linux/nfsd/xdr4.h (server-side XDR for NFSv4).
-
Neil Brown authored
All the lockd *_msg requests are implemented by calling the equivalent non- *_msg request and sending off the response as a new message (*_res). For the non- *_msg requests, the response buffer is pre-zeroed by the RPC layer, but the *_msg handlers weren't pre-zeroing the buffer, would could in some circumstances lead to an Oops. Now we pre-zero them all.
-
Neil Brown authored
Thanks to Hirokazu Takahashi <taka@valinux.co.jp>
-
Neil Brown authored
Symlinks in NFSv3 can be upto 1024 bytes, not 256 like nfsv2.
-
Neil Brown authored
It only gets spam these days...
-
bk://linux-bt.bkbits.net/bt-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Luca Tettamanti authored
-
Luca Tettamanti authored
-
Luca Tettamanti authored
-
Luca Tettamanti authored
-
-
- 12 Oct, 2002 1 commit
-
-
http://linux.bkbits.net/linux-2.5Russell King authored
into flint.arm.linux.org.uk:/usr/src/linux-bk-2.5/linux-2.5-rmk
-
- 11 Oct, 2002 21 commits
-
-
Russell King authored
Don't release NULL resources.
-
Russell King authored
Patch from William Lee Irwin II.
-
Russell King authored
-
Trond Myklebust authored
A trivial loose end: add a 'lease_time' field to 'struct nfs_fsinfo'.
-
Trond Myklebust authored
Now that all calls to nfs_async_handle_jukebox() have been moved to fs/nfs/nfs3proc.c, we clean up by moving the nfs_async_jukebox() routine itself there. We also rename it nfs3_async_handle_jukebox(), to be consistent with the naming conventions of that file.
-
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().
-
Trond Myklebust authored
This is a nontrivial change to the NFS client. This patch does for the async WRITE and COMMIT paths what patch 14 did for the async READ path, by changing 'struct nfs_write_data' so that the v2- and v3-specific parts are moved into a private area, with room for a v4-specific part in parallel. None of the logic is changed.
-
bk://linux.bkbits.net/linux-2.5Marcel Holtmann authored
into hostme.bitkeeper.com:/ua/repos/l/linux-bt/bt-2.5
-
Trond Myklebust authored
The Nagle algorithm gets in the way when sending short RPC messages to the server. The following patch from Chuck does the equivalent of setting TCP_NODELAY on the socket.
-
Trond Myklebust authored
The following seems to have survived the purge ..
-
Andrew Morton authored
Fix uniprocessor compilation. do_timer.h needs asm/mpspec.h for the declaration of `using_apic_timer'
-
Doug Ledford authored
-
Doug Ledford authored
Rework lots of cruft in the aic7xxx_old driver so that it can be more easily read and understood by other people and so it starts on the road to giving a clearer picture of how to interact with the scsi mid layer.
-
Doug Ledford authored
This does 4 things. Fixes the oversight James found about cmd_per_lun. Makes scsi_adjust_queue_depth() implement the usage of tagged that I described in my email to linux-scsi. Updates some comments to highlight things that are going to go away shortly. Removes the call to host->select_queue_depths() entirely since drivers that implement this will try to set SDptr->queue_depth to the desired depth, which in reality will do nothing but confuse the mid layer since that is now the actual allocated command counter, so it won't make the mid layer allocate more commands, it will make the mid layer think more commands have been allocated.
-
Doug Ledford authored
-
Doug Ledford authored
Start removing items from scsi.h that are driver specific and provide a patch to NCR53C9x.? that switches to driver private storage instead as an example of how drivers should do private struct storage
-
http://gkernel.bkbits.net/net-drivers-2.5Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Zwane Mwaikambo authored
Also fixes a bug when UTP port is unplugged.
-
Jay Vosburgh authored
Also some minor cleanups as well. [This patch qualifies for the cavemen ugh-lympics, because the driver does some really nasty things in interrupt context and this patch does not correct that. However, the patch is an incremental improvement over the current code so it's still worth applying. I'll fix it further if IBM does not fix it first. -jgarzik]
-
Jeb J. Cramer authored
* don't read PCI bus for values stored in struct pci_dev * remove silly BUG() in e1000_sw_init, and * return error from e1000_sw_init
-