aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-08-06NFS: Fix /proc/mount for legacy binary interfaceBryan Schumaker2-0/+5
Add a flag so we know if we mounted the NFS server using the legacy binary interface. If we used the legacy interface, then we should not show the mountd options. Signed-off-by: Bryan Schumaker <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-06NFS: Fix the locking in nfs4_callback_getattrTrond Myklebust1-3/+3
The delegation is protected by RCU now, so we need to replace the nfsi->rwsem protection with an rcu protected section. Reported-by: Fred Isaman <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Defer deleting the security context until gss_do_free_ctx()Trond Myklebust1-6/+1
There is no need to delete the gss context separately from the rest of the security context information, and doing so gives rise to a an rcu_dereference_check() warning. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: prevent task_cleanup running on freed xprtJ. Bruce Fields1-0/+1
We saw a report of a NULL dereference in xprt_autoclose: https://bugzilla.redhat.com/show_bug.cgi?id=611938 This appears to be the result of an xprt's task_cleanup running after the xprt is destroyed. Nothing in the current code appears to prevent that. Signed-off-by: J. Bruce Fields <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Reduce asynchronous RPC task stack usageTrond Myklebust1-2/+3
We should just farm out asynchronous RPC tasks immediately to rpciod... Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Move the bound cred to struct rpc_rqstTrond Myklebust12-96/+92
This will allow us to save the original generic cred in rpc_message, so that if we migrate from one server to another, we can generate a new bound cred without having to punt back to the NFS layer. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Clean up of rpc_bindcred()Trond Myklebust4-32/+24
Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Move remaining RPC client related task initialisation into clnt.cTrond Myklebust3-73/+89
Now that rpc_run_task() is the sole entry point for RPC calls, we can move the remaining rpc_client-related initialisation of struct rpc_task from sched.c into clnt.c. Also move rpc_killall_tasks() into the same file, since that too is relative to the rpc_clnt. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Ensure that rpc_exit() always wakes up a sleeping taskTrond Myklebust2-17/+10
Make rpc_exit() non-inline, and ensure that it always wakes up a task that has been queued. Kill off the now unused rpc_wake_up_task(). Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Make the credential cache hashtable size configurableTrond Myklebust2-13/+56
This patch allows the user to configure the credential cache hashtable size using a new module parameter: auth_hashtable_size When set, this parameter will be rounded up to the nearest power of two, with a maximum allowed value of 1024 elements. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04SUNRPC: Store the hashtable size in struct rpc_cred_cacheTrond Myklebust2-3/+8
Cleanup in preparation for allowing the user to determine the maximum hash table size. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-04NFS: Ensure the AUTH_UNIX credcache is allocated dynamicallyTrond Myklebust5-28/+40
Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFS: Fix the NFS users of rpc_restart_call()Trond Myklebust2-7/+4
Fix up those functions that depend on knowing whether or not rpc_restart_call is successful or not. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03SUNRPC: The function rpc_restart_call() should return success/failureTrond Myklebust2-7/+8
Both rpc_restart_call_prepare() and rpc_restart_call() test for the RPC_TASK_KILLED flag, and fail to restart the RPC call if that flag is set. This patch allows callers to know whether or not the restart was successful, so that they can perform cleanups etc in case of failure. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFSv4: Get rid of the bogus RPC_ASSASSINATED(task) checksTrond Myklebust1-10/+0
There is no real reason to have RPC_ASSASSINATED() checks in the NFS code. As far as it is concerned, this is just an RPC error... Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFSv4: Clean up the process of renewing the NFSv4 leaseTrond Myklebust1-14/+9
Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFSv4.1: Handle NFS4ERR_DELAY on SEQUENCE correctlyTrond Myklebust1-30/+62
In RFC5661, an NFS4ERR_DELAY error on a SEQUENCE operation has the special meaning that the server is not finished processing the request. In this case we want to just retry the request without touching the slot. Also fix a bug whereby we would fail to update the sequence id if the server returned any error other than NFS_OK/NFS4ERR_DELAY. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFS: nfs_rename() should not have to flush out writebacksTrond Myklebust1-9/+0
We don't really support nfs servers that invalidate the file handle after a rename, so precautions such as flushing out dirty data before renaming the file are superfluous. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFS: Clean up the callers of nfs_wb_all()Trond Myklebust2-12/+2
There is no need to flush out writes before calling nfs_wb_all(). Signed-off-by: Trond Myklebust <[email protected]>
2010-08-03NFS: Fix up the fsync codeTrond Myklebust1-30/+21
Christoph points out that the VFS will always flush out data before calling nfs_fsync(), so we can dispense with a full call to nfs_wb_all(), and replace that with a simpler call to nfs_commit_inode(). Signed-off-by: Trond Myklebust <[email protected]>
2010-07-30NFSv4: Ensure the lockowners are labelled using the fl_owner and/or fl_pidTrond Myklebust4-14/+50
flock locks want to be labelled using the process pid, while posix locks want to be labelled using the fl_owner. Signed-off-by: Trond Myklebust <[email protected]>
2010-07-30NFSv4: Add support for the RELEASE_LOCKOWNER operationTrond Myklebust6-0/+91
This is needed by NFSv4.0 servers in order to keep the number of locking stateids at a manageable level. Signed-off-by: Trond Myklebust <[email protected]>
2010-07-30NFSv4: Clean up for lockowner XDR encodingTrond Myklebust1-12/+20
Signed-off-by: Trond Myklebust <[email protected]>
2010-07-30NFSv4: Ensure that we track the NFSv4 lock state in read/write requests.Trond Myklebust9-19/+118
This patch fixes bugzilla entry 14501: https://bugzilla.kernel.org/show_bug.cgi?id=14501 Signed-off-by: Trond Myklebust <[email protected]>
2010-06-24NFSv4: Clean up struct nfs4_state_ownerTrond Myklebust3-11/+7
The 'so_delegations' list appears to be unused. Also eliminate so_client. If we already have so_server, we can get to the nfs_client structure. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4.1: There is no need to init the session more than once...Trond Myklebust2-1/+7
Set up a flag to ensure that is indeed the case. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Cleanup for nfs4_alloc_session.Trond Myklebust2-7/+7
There is no reason to change the nfs_client state every time we allocate a new session. Move that line into nfs4_init_client_minor_version. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Clean up exclusive createTrond Myklebust2-13/+10
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Deprecate nfs_client->cl_minorversionTrond Myklebust1-5/+5
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Fix nfs_async_inode_return_delegation() uglinessTrond Myklebust5-19/+8
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Convert the various reboot recovery ops etc to minor version opsTrond Myklebust4-38/+18
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Clean up the NFSv4.1 minor version specific operationsTrond Myklebust4-14/+39
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Don't store session state in the nfs_client->cl_stateTrond Myklebust3-5/+10
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Further cleanup for nfs4_sequence_doneTrond Myklebust1-9/+12
Instead of testing if the nfs_client has a session, we should be testing if the struct nfs4_sequence_res was set up with one. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4.1: Make nfs4_setup_sequence take a nfs_server argumentTrond Myklebust5-28/+43
In anticipation of the day when we have per-filesystem sessions, and also in order to allow the session to change in the event of a filesystem migration event. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4.1: Merge the nfs41_proc_async_sequence() and nfs4_proc_sequence()Trond Myklebust1-24/+44
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4: Kill nfs4_async_handle_error() abuses by NFSv4.1Trond Myklebust1-37/+41
Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4.1: Simplify nfs41_sequence_done()Trond Myklebust1-14/+12
Nobody uses the rpc_status parameter. It is not obvious why we need the struct nfs_client argument either, when we already have that information in the session. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4.1: Clean up nfs4_setup_sequenceTrond Myklebust1-6/+1
Firstly, there is little point in first zeroing out the entire struct nfs4_sequence_res, and then initialising all fields save one. Just initialise the last field to zero... Secondly, nfs41_setup_sequence() has only 2 possible return values: 0, or -EAGAIN, so there is no 'terminate rpc task' case. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv41: Fix a memory leak in nfs41_proc_async_sequence()Trond Myklebust1-18/+21
If the call to rpc_call_async() fails, then the arguments will not be freed, since there will be no call to nfs41_sequence_call_done Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22NFSv4: Fix an embarassing typo in encode_attrs()Trond Myklebust1-2/+2
Apparently, we have never been able to set the atime correctly from the NFSv4 client. Reported-by: 小倉一夫 <[email protected]> Signed-off-by: Trond Myklebust <[email protected]> Cc: [email protected]
2010-06-22NFSv4: Ensure that /proc/self/mountinfo displays the minor version numberTrond Myklebust1-4/+18
Currently, we do not display the minor version mount parameter in the /proc mount info. Signed-off-by: Trond Myklebust <[email protected]> Cc: [email protected]
2010-06-22NFSv4.1: Ensure that we initialise the session when following a referralTrond Myklebust1-71/+51
Put the code that is common to both the referral and ordinary mount cases into a common helper routine. Signed-off-by: Trond Myklebust <[email protected]>
2010-06-22SUNRPC: Fix a re-entrancy bug in xs_tcp_read_calldir()Trond Myklebust1-16/+22
If the attempt to read the calldir fails, then instead of storing the read bytes, we currently discard them. This leads to a garbage final result when upon re-entry to the same routine, we read the remaining bytes. Fixes the regression in bugzilla number 16213. Please see https://bugzilla.kernel.org/show_bug.cgi?id=16213 Signed-off-by: Trond Myklebust <[email protected]> Cc: [email protected]
2010-06-22nfs4 use mandatory attribute file type in nfs4_get_rootAndy Adamson1-1/+1
S_ISDIR(fsinfo.fattr->mode) checks the file type rather than the mode bits, so we should be checking for the NFS_ATTR_FATTR_TYPE fattr property. Signed-off-by: Andy Adamson <[email protected]> Signed-off-by: Trond Myklebust <[email protected]> Cc: [email protected]
2010-06-11Linux 2.6.35-rc3Linus Torvalds1-1/+1
2010-06-11Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds14-28/+103
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: wimax/i2400m: fix missing endian correction read in fw loader net8139: fix a race at the end of NAPI pktgen: Fix accuracy of inter-packet delay. pkt_sched: gen_estimator: add a new lock net: deliver skbs on inactive slaves to exact matches ipv6: fix ICMP6_MIB_OUTERRORS r8169: fix mdio_read and update mdio_write according to hw specs gianfar: Revive the driver for eTSEC devices (disable timestamping) caif: fix a couple range checks phylib: Add support for the LXT973 phy. net: Print num_rx_queues imbalance warning only when there are allocated queues
2010-06-11Merge branch 'pm-fixes' of ↵Linus Torvalds3-0/+8
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: PM / x86: Save/restore MISC_ENABLE register
2010-06-11Merge branch 'for-linus' of ↵Linus Torvalds9-17/+41
git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: Btrfs: The file argument for fsync() is never null Btrfs: handle ERR_PTR from posix_acl_from_xattr() Btrfs: avoid BUG when dropping root and reference in same transaction Btrfs: prohibit a operation of changing acl's mask when noacl mount option used Btrfs: should add a permission check for setfacl Btrfs: btrfs_lookup_dir_item() can return ERR_PTR Btrfs: btrfs_read_fs_root_no_name() returns ERR_PTRs Btrfs: unwind after btrfs_start_transaction() errors Btrfs: btrfs_iget() returns ERR_PTR Btrfs: handle kzalloc() failure in open_ctree() Btrfs: handle error returns from btrfs_lookup_dir_item() Btrfs: Fix BUG_ON for fs converted from extN Btrfs: Fix null dereference in relocation.c Btrfs: fix remap_file_pages error Btrfs: uninitialized data is check_path_shared() Btrfs: fix fallocate regression Btrfs: fix loop device on top of btrfs
2010-06-11Merge branch 'for-linus' of ↵Linus Torvalds9-130/+17
git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: PCI: clear bridge resource range if BIOS assigned bad one PCI: hotplug/cpqphp, fix NULL dereference Revert "PCI: create function symlinks in /sys/bus/pci/slots/N/" PCI: change resource collision messages from KERN_ERR to KERN_INFO