16 Jul, 2016

1 commit


14 Jul, 2016

1 commit

  • Have a simple flex file server where the mds (NFSv4.1 or NFSv4.2)
    is also the ds (NFSv3). I.e., the metadata and the data file are
    the exact same file.

    This will allow testing of the flex file client.

    Simply add the "pnfs" export option to your export
    in /etc/exports and mount from a client that supports
    flex files.

    Signed-off-by: Tom Haynes
    Reviewed-by: Christoph Hellwig
    Signed-off-by: J. Bruce Fields

    Tom Haynes
     

18 Mar, 2016

3 commits


24 Apr, 2015

1 commit

  • Pull nfsd updates from Bruce Fields:
    "A quiet cycle this time; this is basically entirely bugfixes.

    The few that aren't cc'd to stable are cleanup or seemed unlikely to
    affect anyone much"

    * 'for-4.1' of git://linux-nfs.org/~bfields/linux:
    uapi: Remove kernel internal declaration
    nfsd: fix nsfd startup race triggering BUG_ON
    nfsd: eliminate NFSD_DEBUG
    nfsd4: fix READ permission checking
    nfsd4: disallow SEEK with special stateids
    nfsd4: disallow ALLOCATE with special stateids
    nfsd: add NFSEXP_PNFS to the exflags array
    nfsd: Remove duplicate macro define for max sec label length
    nfsd: allow setting acls with unenforceable DENYs
    nfsd: NFSD_FAULT_INJECTION depends on DEBUG_FS
    nfsd: remove unused status arg to nfsd4_cleanup_open_state
    nfsd: remove bogus setting of status in nfsd4_process_open2
    NFSD: Use correct reply size calculating function
    NFSD: Using path_equal() for checking two paths

    Linus Torvalds
     

16 Apr, 2015

1 commit

  • There are a lot of embedded systems that run most or all of their
    functionality in init, running as root:root. For these systems,
    supporting multiple users is not necessary.

    This patch adds a new symbol, CONFIG_MULTIUSER, that makes support for
    non-root users, non-root groups, and capabilities optional. It is enabled
    under CONFIG_EXPERT menu.

    When this symbol is not defined, UID and GID are zero in any possible case
    and processes always have all capabilities.

    The following syscalls are compiled out: setuid, setregid, setgid,
    setreuid, setresuid, getresuid, setresgid, getresgid, setgroups,
    getgroups, setfsuid, setfsgid, capget, capset.

    Also, groups.c is compiled out completely.

    In kernel/capability.c, capable function was moved in order to avoid
    adding two ifdef blocks.

    This change saves about 25 KB on a defconfig build. The most minimal
    kernels have total text sizes in the high hundreds of kB rather than
    low MB. (The 25k goes down a bit with allnoconfig, but not that much.

    The kernel was booted in Qemu. All the common functionalities work.
    Adding users/groups is not possible, failing with -ENOSYS.

    Bloat-o-meter output:
    add/remove: 7/87 grow/shrink: 19/397 up/down: 1675/-26325 (-24650)

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Iulia Manda
    Reviewed-by: Josh Triplett
    Acked-by: Geert Uytterhoeven
    Tested-by: Paul E. McKenney
    Reviewed-by: Paul E. McKenney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Iulia Manda
     

01 Apr, 2015

1 commit


03 Feb, 2015

1 commit

  • Add support for the GETDEVICEINFO, LAYOUTGET, LAYOUTCOMMIT and
    LAYOUTRETURN NFSv4.1 operations, as well as backing code to manage
    outstanding layouts and devices.

    Layout management is very straight forward, with a nfs4_layout_stateid
    structure that extends nfs4_stid to manage layout stateids as the
    top-level structure. It is linked into the nfs4_file and nfs4_client
    structures like the other stateids, and contains a linked list of
    layouts that hang of the stateid. The actual layout operations are
    implemented in layout drivers that are not part of this commit, but
    will be added later.

    The worst part of this commit is the management of the pNFS device IDs,
    which suffers from a specification that is not sanely implementable due
    to the fact that the device-IDs are global and not bound to an export,
    and have a small enough size so that we can't store the fsid portion of
    a file handle, and must never be reused. As we still do need perform all
    export authentication and validation checks on a device ID passed to
    GETDEVICEINFO we are caught between a rock and a hard place. To work
    around this issue we add a new hash that maps from a 64-bit integer to a
    fsid so that we can look up the export to authenticate against it,
    a 32-bit integer as a generation that we can bump when changing the device,
    and a currently unused 32-bit integer that could be used in the future
    to handle more than a single device per export. Entries in this hash
    table are never deleted as we can't reuse the ids anyway, and would have
    a severe lifetime problem anyway as Linux export structures are temporary
    structures that can go away under load.

    Parts of the XDR data, structures and marshaling/unmarshaling code, as
    well as many concepts are derived from the old pNFS server implementation
    from Andy Adamson, Benny Halevy, Dean Hildebrand, Marc Eshel, Fred Isaman,
    Mike Sager, Ricardo Labiaga and many others.

    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     

18 Sep, 2014

1 commit

  • Currently, all of the grace period handling is part of lockd. Eventually
    though we'd like to be able to build v4-only servers, at which point
    we'll need to put all of this elsewhere.

    Move the code itself into fs/nfs_common and have it build a grace.ko
    module. Then, rejigger the Kconfig options so that both nfsd and lockd
    enable it automatically.

    Signed-off-by: Jeff Layton

    Jeff Layton
     

29 Aug, 2014

1 commit


27 Oct, 2013

1 commit

  • The description text for CONFIG_NFSD_V4_SECURITY_LABEL has an unpaired
    quote sign which breaks syntax highlighting for the nfsd Kconfig file.
    Remove it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: J. Bruce Fields

    Christoph Hellwig
     

15 May, 2013

1 commit

  • Implement labeled NFS on the server: encoding and decoding, and writing
    and reading, of file labels.

    Enabled with CONFIG_NFSD_V4_SECURITY_LABEL.

    Signed-off-by: Matthew N. Dodd
    Signed-off-by: Miguel Rodel Felipe
    Signed-off-by: Phua Eu Gene
    Signed-off-by: Khin Mi Mi Aung
    Signed-off-by: J. Bruce Fields

    David Quigley
     

22 Jan, 2013

1 commit

  • The CONFIG_EXPERIMENTAL config item has not carried much meaning for a
    while now and is almost always enabled by default. As agreed during the
    Linux kernel summit, remove it from any "depends on" lines in Kconfigs.

    CC: "J. Bruce Fields"
    Cc: Al Viro
    Signed-off-by: Kees Cook
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     

08 Nov, 2011

1 commit

  • Fault injection on the NFS server makes it easier to test the client's
    state manager and recovery threads. Simulating errors on the server is
    easier than finding the right conditions that cause them naturally.

    This patch uses debugfs to add a simple framework for fault injection to
    the server. This framework is a config option, and can be enabled
    through CONFIG_NFSD_FAULT_INJECTION. Assuming you have debugfs mounted
    to /sys/debug, a set of files will be created in /sys/debug/nfsd/.
    Writing to any of these files will cause the corresponding action and
    write a log entry to dmesg.

    Signed-off-by: Bryan Schumaker
    Signed-off-by: J. Bruce Fields

    Bryan Schumaker
     

16 Jul, 2011

1 commit

  • As promised in feature-removal-schedule.txt it is time to
    remove the nfsctl system call.

    Userspace has perferred to not use this call throughout 2.6 and it has been
    excluded in the default configuration since 2.6.36 (9 months ago).

    So this patch removes all the code that was being compiled out.

    There are still references to sys_nfsctl in various arch systemcall tables
    and related code. These should be cleaned out too, probably in the next
    merge window.

    Signed-off-by: NeilBrown
    Signed-off-by: J. Bruce Fields

    NeilBrown
     

07 Jun, 2011

1 commit

  • nfsd V4 support uses crypto interfaces, so select CRYPTO
    to fix build errors in 2.6.39:

    ERROR: "crypto_destroy_tfm" [fs/nfsd/nfsd.ko] undefined!
    ERROR: "crypto_alloc_base" [fs/nfsd/nfsd.ko] undefined!

    Reported-by: Wakko Warner
    Signed-off-by: Randy Dunlap
    Cc: stable@kernel.org
    Signed-off-by: J. Bruce Fields

    Randy Dunlap
     

28 Oct, 2010

1 commit

  • lockd should use lock_flocks() instead of lock_kernel()
    to lock against posix locks accessing the i_flock list.

    This is a prerequisite to turning lock_flocks into a
    spinlock.

    Signed-off-by: Arnd Bergmann
    Acked-by: J. Bruce Fields

    Arnd Bergmann
     

27 Oct, 2010

1 commit

  • * 'for-2.6.37' of git://linux-nfs.org/~bfields/linux: (99 commits)
    svcrpc: svc_tcp_sendto XPT_DEAD check is redundant
    svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue
    svcrpc: assume svc_delete_xprt() called only once
    svcrpc: never clear XPT_BUSY on dead xprt
    nfsd4: fix connection allocation in sequence()
    nfsd4: only require krb5 principal for NFSv4.0 callbacks
    nfsd4: move minorversion to client
    nfsd4: delay session removal till free_client
    nfsd4: separate callback change and callback probe
    nfsd4: callback program number is per-session
    nfsd4: track backchannel connections
    nfsd4: confirm only on succesful create_session
    nfsd4: make backchannel sequence number per-session
    nfsd4: use client pointer to backchannel session
    nfsd4: move callback setup into session init code
    nfsd4: don't cache seq_misordered replies
    SUNRPC: Properly initialize sock_xprt.srcaddr in all cases
    SUNRPC: Use conventional switch statement when reclassifying sockets
    sunrpc/xprtrdma: clean up workqueue usage
    sunrpc: Turn list_for_each-s into the ..._entry-s
    ...

    Fix up trivial conflicts (two different deprecation notices added in
    separate branches) in Documentation/feature-removal-schedule.txt

    Linus Torvalds
     

23 Oct, 2010

1 commit

  • * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
    BKL: introduce CONFIG_BKL.
    dabusb: remove the BKL
    sunrpc: remove the big kernel lock
    init/main.c: remove BKL notations
    blktrace: remove the big kernel lock
    rtmutex-tester: make it build without BKL
    dvb-core: kill the big kernel lock
    dvb/bt8xx: kill the big kernel lock
    tlclk: remove big kernel lock
    fix rawctl compat ioctls breakage on amd64 and itanic
    uml: kill big kernel lock
    parisc: remove big kernel lock
    cris: autoconvert trivial BKL users
    alpha: kill big kernel lock
    isapnp: BKL removal
    s390/block: kill the big kernel lock
    hpet: kill BKL, add compat_ioctl

    Linus Torvalds
     

21 Oct, 2010

1 commit

  • With all the patches we have queued in the BKL removal tree, only a
    few dozen modules are left that actually rely on the BKL, and even
    there are lots of low-hanging fruit. We need to decide what to do
    about them, this patch illustrates one of the options:

    Every user of the BKL is marked as 'depends on BKL' in Kconfig,
    and the CONFIG_BKL becomes a user-visible option. If it gets
    disabled, no BKL using module can be built any more and the BKL
    code itself is compiled out.

    The one exception is file locking, which is practically always
    enabled and does a 'select BKL' instead. This effectively forces
    CONFIG_BKL to be enabled until we have solved the fs/lockd
    mess and can apply the patch that removes the BKL from fs/locks.c.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

23 Sep, 2010

1 commit


13 Sep, 2010

1 commit

  • The NFSv4 client's callback server calls svc_gss_principal(), which
    is defined in the auth_rpcgss.ko

    The NFSv4 server has the same dependency, and in addition calls
    svcauth_gss_flavor(), gss_mech_get_by_pseudoflavor(),
    gss_pseudoflavor_to_service() and gss_mech_put() from the same module.

    The module auth_rpcgss itself has no dependencies aside from sunrpc,
    so we only need to select RPCSEC_GSS.

    Reported-by: Uwe Kleine-König
    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

18 Aug, 2010

1 commit

  • Randy Dunlap reports:

    ERROR: "svc_gss_principal" [fs/nfs/nfs.ko] undefined!

    because in fs/nfs/Kconfig, NFS_V4 selects RPCSEC_GSS_KRB5
    and/or in fs/nfsd/Kconfig, NFSD_V4 selects RPCSEC_GSS_KRB5.

    RPCSEC_GSS_KRB5 does 5 selects, but none of these is enforced/followed
    by the fs/nfs[d]/Kconfig configs:

    select SUNRPC_GSS
    select CRYPTO
    select CRYPTO_MD5
    select CRYPTO_DES
    select CRYPTO_CBC

    Reported-by: Randy Dunlap
    Cc: J. Bruce Fields
    Acked-by: Randy Dunlap
    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

19 Mar, 2009

1 commit


22 Jan, 2009

1 commit