25 Oct, 2011

1 commit


27 Sep, 2010

3 commits


08 Aug, 2010

1 commit

  • * 'for-2.6.36' of git://linux-nfs.org/~bfields/linux: (34 commits)
    nfsd4: fix file open accounting for RDWR opens
    nfsd: don't allow setting maxblksize after svc created
    nfsd: initialize nfsd versions before creating svc
    net: sunrpc: removed duplicated #include
    nfsd41: Fix a crash when a callback is retried
    nfsd: fix startup/shutdown order bug
    nfsd: minor nfsd read api cleanup
    gcc-4.6: nfsd: fix initialized but not read warnings
    nfsd4: share file descriptors between stateid's
    nfsd4: fix openmode checking on IO using lock stateid
    nfsd4: miscellaneous process_open2 cleanup
    nfsd4: don't pretend to support write delegations
    nfsd: bypass readahead cache when have struct file
    nfsd: minor nfsd_svc() cleanup
    nfsd: move more into nfsd_startup()
    nfsd: just keep single lockd reference for nfsd
    nfsd: clean up nfsd_create_serv error handling
    nfsd: fix error handling in __write_ports_addxprt
    nfsd: fix error handling when starting nfsd with rpcbind down
    nfsd4: fix v4 state shutdown error paths
    ...

    Linus Torvalds
     

04 Aug, 2010

1 commit


07 Jul, 2010

1 commit

  • This patch makes the cache_cleaner workqueue deferrable, to prevent
    unnecessary system wake-ups, which is very important for embedded
    battery-powered devices.

    do_cache_clean() is called every 30 seconds at the moment, and often
    makes the system wake up from its power-save sleep state. With this
    change, when the workqueue uses a deferrable timer, the
    do_cache_clean() invocation will be delayed and combined with the
    closest "real" wake-up. This improves the power consumption situation.

    Note, I tried to create a DECLARE_DELAYED_WORK_DEFERRABLE() helper
    macro, similar to DECLARE_DELAYED_WORK(), but failed because of the
    way the timer wheel core stores the deferrable flag (it is the
    LSBit in the time->base pointer). My attempt to define a static
    variable with this bit set ended up with the "initializer element is
    not constant" error.

    Thus, I have to use run-time initialization, so I created a new
    cache_initialize() function which is called once when sunrpc is
    being initialized.

    Signed-off-by: Artem Bityutskiy
    Signed-off-by: J. Bruce Fields

    Artem Bityutskiy
     

04 Dec, 2009

1 commit

  • The kernel's rpcbind client creates and deletes an rpc_clnt and its
    underlying transport socket for every upcall to the local rpcbind
    daemon.

    When starting a typical NFS server on IPv4 and IPv6, the NFS service
    itself does three upcalls (one per version) times two upcalls (one
    per transport) times two upcalls (one per address family), making 12,
    plus another one for the initial call to unregister previous NFS
    services. Starting the NLM service adds an additional 13 upcalls,
    for similar reasons.

    (Currently the NFS service doesn't start IPv6 listeners, but it will
    soon enough).

    Instead, let's create an rpc_clnt for rpcbind upcalls during the
    first local rpcbind query, and cache it. This saves the overhead of
    creating and destroying an rpc_clnt and a socket for every upcall.

    The new logic also prevents the kernel from attempting an RPCB_SET or
    RPCB_UNSET if it knows from the start that the local portmapper does
    not support rpcbind protocol version 4. This will cut down on the
    number of rpcbind upcalls in legacy environments.

    Signed-off-by: Chuck Lever

    Chuck Lever
     

21 Aug, 2009

1 commit


27 Jun, 2009

1 commit

  • The sunrpc module uses rcu_call() thus it should use rcu_barrier() on
    module unload.

    Have not verified that the possibility for new call_rcu() callbacks
    has been disabled. As a hint for checking, the functions calling
    call_rcu() (unx_destroy_cred and generic_destroy_cred) are
    registered as crdestroy function pointer in struct rpc_credops.

    Acked-by: Paul E. McKenney
    Acked-by: Trond Myklebust
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     

02 Feb, 2008

4 commits


30 Jan, 2008

1 commit


10 Oct, 2007

1 commit


11 Jul, 2007

6 commits


15 May, 2007

1 commit

  • - net/sunrpc/xprtsock.c:1635:5: warning: symbol 'init_socket_xprt' was not
    declared. Should it be static?
    - net/sunrpc/xprtsock.c:1649:6: warning: symbol 'cleanup_socket_xprt' was
    not declared. Should it be static?

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

10 May, 2007

1 commit

  • register_rpc_pipefs() needs to clean up rpc_inode_cache
    by kmem_cache_destroy() on register_filesystem() failure.

    init_sunrpc() needs to unregister rpc_pipe_fs by unregister_rpc_pipefs()
    when rpc_init_mempool() returns error.

    Signed-off-by: Akinobu Mita
    Cc: Neil Brown
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

15 Feb, 2007

2 commits

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     
  • AUTH_UNIX authentication (the standard with NFS) has a limit of 16 groups ids.
    This causes problems for people in more than 16 groups.

    So allow the server to map a uid into a list of group ids based on local
    knowledge rather depending on the (possibly truncated) list from the client.

    If there is no process on the server responding to upcalls, the gidlist in the
    request will still be used.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     

06 Dec, 2006

2 commits


02 Oct, 2006

1 commit

  • Currently knfsd keeps its own list of all nfsd threads in nfssvc.c; add a new
    way of managing the list of all threads in a svc_serv. Add
    svc_create_pooled() to allow creation of a svc_serv whose threads are managed
    by the sunrpc code. Add svc_set_num_threads() to manage the number of threads
    in a service, either per-pool or globally across the service.

    Signed-off-by: Greg Banks
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Greg Banks
     

23 Sep, 2006

1 commit

  • The two function call API for creating a new RPC client is now obsolete.
    Remove it.

    Also, remove an unnecessary check to see whether the caller is capable of
    using privileged network services. The kernel RPC client always uses a
    privileged ephemeral port by default; callers are responsible for checking
    the authority of users to make use of any RPC service, or for specifying
    that a nonprivileged port is acceptable.

    Test plan:
    Repeated runs of Connectathon locking suite. Check network trace to ensure
    correctness of NLM requests and replies.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

01 Jul, 2006

1 commit


28 Mar, 2006

3 commits


07 Jan, 2006

1 commit


05 Nov, 2005

1 commit


24 Sep, 2005

1 commit


08 Sep, 2005

1 commit

  • When registering an RPC cache, cache_register() always sets the owner as the
    sunrpc module. However, there are RPC caches owned by other modules. With
    the incorrect owner setting, the real owning module can be removed potentially
    with an open reference to the cache from userspace.

    For example, if one were to stop the nfs server and unmount the nfsd
    filesystem, the nfsd module could be removed eventhough rpc.idmapd had
    references to the idtoname and nametoid caches (i.e.
    /proc/net/rpc/nfs4./channel is still open). This resulted in a
    system panic on one of our machines when attempting to restart the nfs
    services after reloading the nfsd module.

    The following patch adds a 'struct module *owner' field in struct
    cache_detail. The owner is further assigned to the struct proc_dir_entry
    in cache_register() so that the module cannot be unloaded while user-space
    daemons have an open reference on the associated file under /proc.

    Signed-off-by: Bruce Allan
    Cc: Trond Myklebust
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bruce Allan
     

24 Jun, 2005

1 commit

  • rpc_create_client was modified recently to do its own (synchronous) NULL ping
    of the server. We'd rather do that on our own, asynchronously, so that we
    don't have to block the nfsd thread doing the probe, and so that setclientid
    handling (hence, client mounts) can proceed normally whether the callback is
    succesful or not. (We can still function fine without the callback
    channel--we just won't be able to give out delegations till it's verified to
    work.)

    Signed-off-by: J. Bruce Fields
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     

23 Jun, 2005

1 commit