11 Dec, 2020

1 commit

  • We've been seeing failures with xfstests generic/091 and generic/263
    when using READ_PLUS. I've made some progress on these issues, and the
    tests fail later on but still don't pass. Let's disable READ_PLUS by
    default until we can work out what is going on.

    Signed-off-by: Anna Schumaker

    Anna Schumaker
     

03 Mar, 2020

1 commit

  • When converting and moving nfsroot.txt to nfsroot.rst the references to
    the old text file was not updated to match the change, fix this.

    Fixes: f9a9349846f92b2d ("Documentation: nfsroot.txt: convert to ReST")
    Signed-off-by: Niklas Söderlund
    Reviewed-by: Geert Uytterhoeven
    Link: https://lore.kernel.org/r/20200212181332.520545-1-niklas.soderlund+renesas@ragnatech.se
    Signed-off-by: Jonathan Corbet

    Niklas Söderlund
     

25 Jan, 2020

1 commit


15 Jan, 2020

1 commit

  • If CONFIG_SWAP=n, it does not make much sense to offer the user the
    option to enable support for swapping over NFS, as that will still fail
    at run time:

    # swapon /swap
    swapon: /swap: swapon failed: Function not implemented

    Fix this by adding a dependency on CONFIG_SWAP.

    Fixes: a564b8f0398636ba ("nfs: enable swap on NFS")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Anna Schumaker

    Geert Uytterhoeven
     

21 May, 2019

1 commit


07 Apr, 2019

1 commit

  • Currently support for 64-bit sector_t and blkcnt_t is optional on 32-bit
    architectures. These types are required to support block device and/or
    file sizes larger than 2 TiB, and have generally defaulted to on for
    a long time. Enabling the option only increases the i386 tinyconfig
    size by 145 bytes, and many data structures already always use
    64-bit values for their in-core and on-disk data structures anyway,
    so there should not be a large change in dynamic memory usage either.

    Dropping this option removes a somewhat weird non-default config that
    has cause various bugs or compiler warnings when actually used.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

12 Aug, 2017

1 commit

  • The blocklayout code does not compile cleanly for a 32-bit sector_t,
    and also has no reliable checks for devices sizes, which makes it
    unsafe to use with a kernel that doesn't support large block devices.

    Signed-off-by: Christoph Hellwig
    Reported-by: Arnd Bergmann
    Fixes: 5c83746a0cf2 ("pnfs/blocklayout: in-kernel GETDEVICEINFO XDR parsing")
    Signed-off-by: Anna Schumaker

    Christoph Hellwig
     

21 Apr, 2017

1 commit


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
     

04 Feb, 2015

1 commit

  • The flexfile layout is a new layout that extends the
    file layout. It is currently being drafted as a specification at
    https://datatracker.ietf.org/doc/draft-ietf-nfsv4-layout-types/

    Signed-off-by: Weston Andros Adamson
    Signed-off-by: Tom Haynes
    Signed-off-by: Tao Peng

    Tom Haynes
     

16 Nov, 2013

1 commit

  • Defaulting to m seem to prevent building the pnfs layout modules into the
    kernel. Default to the value of CONFIG_NFS_V4 make sure they are
    built in for built-in NFSv4 support and modular for a modular NFSv4.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Trond Myklebust

    Christoph Hellwig
     

29 Oct, 2013

1 commit

  • Broadly speaking, v4.1 migration is untested. There are no servers
    in the wild that support NFSv4.1 migration. However, as server
    implementations become available, we do want to enable testing by
    developers, while leaving it disabled for environments for which
    broken migration support would be an unpleasant surprise.

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

    Chuck Lever
     

09 Jun, 2013

2 commits


04 Oct, 2012

1 commit


01 Aug, 2012

2 commits

  • Merge Andrew's second set of patches:
    - MM
    - a few random fixes
    - a couple of RTC leftovers

    * emailed patches from Andrew Morton : (120 commits)
    rtc/rtc-88pm80x: remove unneed devm_kfree
    rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails
    mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
    tmpfs: distribute interleave better across nodes
    mm: remove redundant initialization
    mm: warn if pg_data_t isn't initialized with zero
    mips: zero out pg_data_t when it's allocated
    memcg: gix memory accounting scalability in shrink_page_list
    mm/sparse: remove index_init_lock
    mm/sparse: more checks on mem_section number
    mm/sparse: optimize sparse_index_alloc
    memcg: add mem_cgroup_from_css() helper
    memcg: further prevent OOM with too many dirty pages
    memcg: prevent OOM with too many dirty pages
    mm: mmu_notifier: fix freed page still mapped in secondary MMU
    mm: memcg: only check anon swapin page charges for swap cache
    mm: memcg: only check swap cache pages for repeated charging
    mm: memcg: split swapin charge function into private and public part
    mm: memcg: remove needless !mm fixup to init_mm when charging
    mm: memcg: remove unneeded shmem charge type
    ...

    Linus Torvalds
     
  • Implement the new swapfile a_ops for NFS and hook up ->direct_IO. This
    will set the NFS socket to SOCK_MEMALLOC and run socket reconnect under
    PF_MEMALLOC as well as reset SOCK_MEMALLOC before engaging the protocol
    ->connect() method.

    PF_MEMALLOC should allow the allocation of struct socket and related
    objects and the early (re)setting of SOCK_MEMALLOC should allow us to
    receive the packets required for the TCP connection buildup.

    [jlayton@redhat.com: Restore PF_MEMALLOC task flags in all cases]
    [dfeng@redhat.com: Fix handling of multiple swap files]
    [a.p.zijlstra@chello.nl: Original patch]
    Signed-off-by: Mel Gorman
    Acked-by: Rik van Riel
    Cc: Christoph Hellwig
    Cc: David S. Miller
    Cc: Eric B Munson
    Cc: Eric Paris
    Cc: James Morris
    Cc: Mel Gorman
    Cc: Mike Christie
    Cc: Neil Brown
    Cc: Sebastian Andrzej Siewior
    Cc: Trond Myklebust
    Cc: Xiaotian Feng
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     

31 Jul, 2012

3 commits

  • This patch exports symbols needed by the v4 module. In addition, I also
    switch over to using IS_ENABLED() to check if CONFIG_NFS_V4 or
    CONFIG_NFS_V4_MODULE are set.

    The module (nfs4.ko) will be created in the same directory as nfs.ko and
    will be automatically loaded the first time you try to mount over NFS v4.

    Signed-off-by: Bryan Schumaker
    Signed-off-by: Trond Myklebust

    Bryan Schumaker
     
  • This patch exports symbols and moves over the final structures needed by
    the v3 module. In addition, I also switch over to using IS_ENABLED() to
    check if CONFIG_NFS_V3 or CONFIG_NFS_V3_MODULE are set.

    The module (nfs3.ko) will be created in the same directory as nfs.ko and
    will be automatically loaded the first time you try to mount over NFS v3.

    Signed-off-by: Bryan Schumaker
    Signed-off-by: Trond Myklebust

    Bryan Schumaker
     
  • The module (nfs2.ko) will be created in the same directory as nfs.ko and
    will be automatically loaded the first time you try to mount over NFS v2.

    Signed-off-by: Bryan Schumaker
    Signed-off-by: Trond Myklebust

    Bryan Schumaker
     

29 Jun, 2012

1 commit


15 May, 2012

2 commits


21 Mar, 2012

1 commit

  • This allows us to turn on/off the dprintk() debugging interfaces for
    those distributions that don't ship the 'rpcdebug' utility.
    It also allows us to add Kbuild dependencies. Specifically, we already
    know that dprintk() in general relies on CONFIG_SYSCTL. Now it turns out
    that the NFS dprintks depend on CONFIG_CRC32 after we added support
    for the filehandle hash.

    Reported-by: Paul Gortmaker
    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

02 Mar, 2012

1 commit


15 Feb, 2012

1 commit


07 Feb, 2012

1 commit

  • This patch removes the CONFIG_NFS_USE_NEW_IDMAPPER compile option.
    First, the idmapper will attempt to map the id using /sbin/request-key
    and nfsidmap. If this fails (if /etc/request-key.conf is not configured
    properly) then the idmapper will call the legacy code to perform the
    mapping. I left a comment stating where the legacy code begins to make
    it easier for somebody to remove in the future.

    Signed-off-by: Bryan Schumaker
    Signed-off-by: Trond Myklebust

    Bryan Schumaker
     

12 Aug, 2011

1 commit

  • Just like files-layout, blocks & objects layouts are part of the
    NFS 4.1 protocol and should be automatically selected if NFS_4_1
    is selected. The small problem is that these depend on other
    Kernel support being present, while files only depends on NFS
    itself.

    This patch removes from the user choice the presence of objects
    and blocks layout. But makes sure these are selected only if
    the depended subsystems are present in the Kernel.

    Signed-off-by: Boaz Harrosh
    Acked-by: Peng Tao
    Signed-off-by: Linus Torvalds

    Boaz Harrosh
     

11 Aug, 2011

1 commit

  • PNFS_BLOCK needs BLK_DEV_DM/MD, which is not a dependency for other
    pnfs layout drivers. Seperate it out so others can still build when
    BLK_DEV_DM/MD is not enabled.

    Also change select to depends on to avoid build failures.

    Reported-and-tested-by: Randy Dunlap
    Signed-off-by: Peng Tao
    Acked-by: Benny Halevy
    Signed-off-by: Linus Torvalds

    Peng Tao
     

01 Aug, 2011

1 commit

  • Define a configuration variable to enable/disable compilation of the
    block driver code.

    Add the minimal structure for a pnfs block layout driver, and empty
    list-heads that will hold the extent data

    [pnfsblock: make NFS_V4_1 select PNFS_BLOCK]
    Signed-off-by: Peng Tao
    Signed-off-by: Fred Isaman
    Signed-off-by: Benny Halevy
    [pnfs-block: fix CONFIG_PNFS_BLOCK dependencies]
    Signed-off-by: Benny Halevy
    Signed-off-by: Benny Halevy
    [pnfsblock: SQUASHME: adjust to API change]
    Signed-off-by: Fred Isaman
    [pnfs: move pnfs_layout_type inline in nfs_inode]
    Signed-off-by: Benny Halevy
    [blocklayout: encode_layoutcommit implementation]
    Signed-off-by: Boaz Harrosh
    Signed-off-by: Benny Halevy
    Signed-off-by: Benny Halevy
    [pnfsblock: layout alloc and free]
    Signed-off-by: Fred Isaman
    [pnfs: move pnfs_layout_type inline in nfs_inode]
    Signed-off-by: Benny Halevy
    Signed-off-by: Benny Halevy
    [pnfsblock: define module alias]
    Signed-off-by: Peng Tao
    [rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]
    Signed-off-by: Jim Rees
    Signed-off-by: Trond Myklebust

    Fred Isaman
     

15 Jul, 2011

1 commit


30 May, 2011

1 commit

  • * Define the PNFS_OBJLAYOUT Kconfig option in the nfs
    master Kconfig file.
    * Add the objlayout driver to the Kernel's Kbuild system.
    * Add the fs/nfs/objlayout/Kbuild file for building the
    objlayoutdriver.ko driver
    * Define fs/nfs/objlayout/objio_osd.c, register the driver on module
    initialization and unregister on exit.

    [pnfs-obj: remove of CONFIG_PNFS fallout]
    Signed-off-by: Boaz Harrosh
    [added "unsure" clause]
    [depend on NFS_V4_1]
    Signed-off-by: Benny Halevy

    Benny Halevy
     

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

  • * 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
    net/sunrpc: Use static const char arrays
    nfs4: fix channel attribute sanity-checks
    NFSv4.1: Use more sensible names for 'initialize_mountpoint'
    NFSv4.1: pnfs: filelayout: add driver's LAYOUTGET and GETDEVICEINFO infrastructure
    NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure
    NFS: client needs to maintain list of inodes with active layouts
    NFS: create and destroy inode's layout cache
    NFSv4.1: pnfs: filelayout: introduce minimal file layout driver
    NFSv4.1: pnfs: full mount/umount infrastructure
    NFS: set layout driver
    NFS: ask for layouttypes during v4 fsinfo call
    NFS: change stateid to be a union
    NFSv4.1: pnfsd, pnfs: protocol level pnfs constants
    SUNRPC: define xdr_decode_opaque_fixed
    NFSD: remove duplicate NFS4_STATEID_SIZE

    Linus Torvalds
     

26 Oct, 2010

1 commit

  • * 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)
    SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred
    nfs: fix unchecked value
    Ask for time_delta during fsinfo probe
    Revalidate caches on lock
    SUNRPC: After calling xprt_release(), we must restart from call_reserve
    NFSv4: Fix up the 'dircount' hint in encode_readdir
    NFSv4: Clean up nfs4_decode_dirent
    NFSv4: nfs4_decode_dirent must clear entry->fattr->valid
    NFSv4: Fix a regression in decode_getfattr
    NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer
    NFS: Ensure we check all allocation return values in new readdir code
    NFS: Readdir plus in v4
    NFS: introduce generic decode_getattr function
    NFS: check xdr_decode for errors
    NFS: nfs_readdir_filler catch all errors
    NFS: readdir with vmapped pages
    NFS: remove page size checking code
    NFS: decode_dirent should use an xdr_stream
    SUNRPC: Add a helper function xdr_inline_peek
    NFS: remove readdir plus limit
    ...

    Linus Torvalds
     

25 Oct, 2010

1 commit

  • Allow a module implementing a layout type to register, and
    have its mount/umount routines called for filesystems that
    the server declares support it.

    Signed-off-by: Fred Isaman
    Signed-off-by: Marc Eshel
    Signed-off-by: Andy Adamson
    Signed-off-by: Bian Naimeng
    Signed-off-by: Benny Halevy
    Signed-off-by: Trond Myklebust

    Fred Isaman
     

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
     

08 Oct, 2010

1 commit

  • This patch creates a new idmapper system that uses the request-key function to
    place a call into userspace to map user and group ids to names. The old
    idmapper was single threaded, which prevented more than one request from running
    at a single time. This means that a user would have to wait for an upcall to
    finish before accessing a cached result.

    The upcall result is stored on a keyring of type id_resolver. See the file
    Documentation/filesystems/nfs/idmapper.txt for instructions.

    Signed-off-by: Bryan Schumaker
    [Trond: fix up the return value of nfs_idmap_lookup_name and clean up code]
    Signed-off-by: Trond Myklebust

    Bryan Schumaker
     

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