13 Sep, 2021

1 commit

  • Pull smbfs updates from Steve French:
    "cifs/smb3 updates:

    - DFS reconnect fix

    - begin creating common headers for server and client

    - rename the cifs_common directory to smbfs_common to be more
    consistent ie change use of the name cifs to smb (smb3 or smbfs is
    more accurate, as the very old cifs dialect has long been
    superseded by smb3 dialects).

    In the future we can rename the fs/cifs directory to fs/smbfs.

    This does not include the set of multichannel fixes nor the two
    deferred close fixes (they are still being reviewed and tested)"

    * tag '5.15-rc-cifs-part2' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: properly invalidate cached root handle when closing it
    cifs: move SMB FSCTL definitions to common code
    cifs: rename cifs_common to smbfs_common
    cifs: update FSCTL definitions

    Linus Torvalds
     

10 Sep, 2021

2 commits

  • Pull more s390 updates from Heiko Carstens:
    "Except for the xpram device driver removal it is all about fixes and
    cleanups.

    - Fix topology update on cpu hotplug, so notifiers see expected
    masks. This bug was uncovered with SCHED_CORE support.

    - Fix stack unwinding so that the correct number of entries are
    omitted like expected by common code. This fixes KCSAN selftests.

    - Add kmemleak annotation to stack_alloc to avoid false positive
    kmemleak warnings.

    - Avoid layering violation in common I/O code and don't unregister
    subchannel from child-drivers.

    - Remove xpram device driver for which no real use case exists since
    the kernel is 64 bit only. Also all hypervisors got required
    support removed in the meantime, which means the xpram device
    driver is dead code.

    - Fix -ENODEV handling of clp_get_state in our PCI code.

    - Enable KFENCE in debug defconfig.

    - Cleanup hugetlbfs s390 specific Kconfig dependency.

    - Quite a lot of trivial fixes to get rid of "W=1" warnings, and and
    other simple cleanups"

    * tag 's390-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    hugetlbfs: s390 is always 64bit
    s390/ftrace: remove incorrect __va usage
    s390/zcrypt: remove incorrect kernel doc indicators
    scsi: zfcp: fix kernel doc comments
    s390/sclp: add __nonstring annotation
    s390/hmcdrv_ftp: fix kernel doc comment
    s390: remove xpram device driver
    s390/pci: read clp_list_pci_req only once
    s390/pci: fix clp_get_state() handling of -ENODEV
    s390/cio: fix kernel doc comment
    s390/ctrlchar: fix kernel doc comment
    s390/con3270: use proper type for tasklet function
    s390/cpum_cf: move array from header to C file
    s390/mm: fix kernel doc comments
    s390/topology: fix topology information when calling cpu hotplug notifiers
    s390/unwind: use current_frame_address() to unwind current task
    s390/configs: enable CONFIG_KFENCE in debug_defconfig
    s390/entry: make oklabel within CHKSTG macro local
    s390: add kmemleak annotation in stack_alloc()
    s390/cio: dont unregister subchannel from child-drivers

    Linus Torvalds
     
  • Pull libnvdimm updates from Dan Williams:

    - Fix a race condition in the teardown path of raw mode pmem
    namespaces.

    - Cleanup the code that filesystems use to detect filesystem-dax
    capabilities of their underlying block device.

    * tag 'libnvdimm-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    dax: remove bdev_dax_supported
    xfs: factor out a xfs_buftarg_is_dax helper
    dax: stub out dax_supported for !CONFIG_FS_DAX
    dax: remove __generic_fsdax_supported
    dax: move the dax_read_lock() locking into dax_supported
    dax: mark dax_get_by_host static
    dm: use fs_dax_get_by_bdev instead of dax_get_by_host
    dax: stop using bdevname
    fsdax: improve the FS_DAX Kconfig description and help text
    libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind

    Linus Torvalds
     

09 Sep, 2021

2 commits

  • As we move to common code between client and server, we have
    been asked to make the names less confusing, and refer less
    to "cifs" and more to words which include "smb" instead to
    e.g. "smbfs" for the client (we already have "ksmbd" for the
    kernel server, and "smbd" for the user space Samba daemon).
    So to be more consistent in the naming of common code between
    client and server and reduce the risk of merge conflicts as
    more common code is added - rename "cifs_common" to
    "smbfs_common" (in future releases we also will rename
    the fs/cifs directory to fs/smbfs)

    Reviewed-by: Ronnie Sahlberg
    Signed-off-by: Steve French

    Steve French
     
  • No need to check for 64BIT. While at it, let's just select
    ARCH_SUPPORTS_HUGETLBFS from arch/s390/Kconfig.

    Signed-off-by: David Hildenbrand
    Link: https://lore.kernel.org/r/20210908154506.20764-1-david@redhat.com
    Signed-off-by: Heiko Carstens

    David Hildenbrand
     

05 Sep, 2021

1 commit

  • Merge NTFSv3 filesystem from Konstantin Komarov:
    "This patch adds NTFS Read-Write driver to fs/ntfs3.

    Having decades of expertise in commercial file systems development and
    huge test coverage, we at Paragon Software GmbH want to make our
    contribution to the Open Source Community by providing implementation
    of NTFS Read-Write driver for the Linux Kernel.

    This is fully functional NTFS Read-Write driver. Current version works
    with NTFS (including v3.1) and normal/compressed/sparse files and
    supports journal replaying.

    We plan to support this version after the codebase once merged, and
    add new features and fix bugs. For example, full journaling support
    over JBD will be added in later updates"

    Link: https://lore.kernel.org/lkml/20210729134943.778917-1-almaz.alexandrovich@paragon-software.com/
    Link: https://lore.kernel.org/lkml/aa4aa155-b9b2-9099-b7a2-349d8d9d8fbd@paragon-software.com/

    * git://github.com/Paragon-Software-Group/linux-ntfs3: (35 commits)
    fs/ntfs3: Change how module init/info messages are displayed
    fs/ntfs3: Remove GPL boilerplates from decompress lib files
    fs/ntfs3: Remove unnecessary condition checking from ntfs_file_read_iter
    fs/ntfs3: Fix integer overflow in ni_fiemap with fiemap_prep()
    fs/ntfs3: Restyle comments to better align with kernel-doc
    fs/ntfs3: Rework file operations
    fs/ntfs3: Remove fat ioctl's from ntfs3 driver for now
    fs/ntfs3: Restyle comments to better align with kernel-doc
    fs/ntfs3: Fix error handling in indx_insert_into_root()
    fs/ntfs3: Potential NULL dereference in hdr_find_split()
    fs/ntfs3: Fix error code in indx_add_allocate()
    fs/ntfs3: fix an error code in ntfs_get_acl_ex()
    fs/ntfs3: add checks for allocation failure
    fs/ntfs3: Use kcalloc/kmalloc_array over kzalloc/kmalloc
    fs/ntfs3: Do not use driver own alloc wrappers
    fs/ntfs3: Use kernel ALIGN macros over driver specific
    fs/ntfs3: Restyle comment block in ni_parse_reparse()
    fs/ntfs3: Remove unused including
    fs/ntfs3: Fix fall-through warnings for Clang
    fs/ntfs3: Fix one none utf8 char in source file
    ...

    Linus Torvalds
     

01 Sep, 2021

2 commits

  • Pull cifs client updates from Steve French:
    "Eleven cifs/smb3 client fixes:

    - mostly restructuring to allow disabling less secure algorithms
    (this will allow eventual removing rc4 and md4 from general use in
    the kernel)

    - four fixes, including two for stable

    - enable r/w support with fscache and cifs.ko

    I am working on a larger set of changes (the usual ... multichannel,
    auth and signing improvements), but wanted to get these in earlier to
    reduce chance of merge conflicts later in the merge window"

    * tag '5.15-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: Do not leak EDEADLK to dgetents64 for STATUS_USER_SESSION_DELETED
    cifs: add cifs_common directory to MAINTAINERS file
    cifs: cifs_md4 convert to SPDX identifier
    cifs: create a MD4 module and switch cifs.ko to use it
    cifs: fork arc4 and create a separate module for it for cifs and other users
    cifs: remove support for NTLM and weaker authentication algorithms
    cifs: enable fscache usage even for files opened as rw
    oid_registry: Add OIDs for missing Spnego auth mechanisms to Macs
    smb3: fix posix extensions mount option
    cifs: fix wrong release in sess_alloc_buffer() failed path
    CIFS: Fix a potencially linear read overflow

    Linus Torvalds
     
  • Pull initial ksmbd implementation from Steve French:
    "Initial merge of kernel smb3 file server, ksmbd.

    The SMB family of protocols is the most widely deployed network
    filesystem protocol, the default on Windows and Macs (and even on many
    phones and tablets), with clients and servers on all major operating
    systems, but lacked a kernel server for Linux. For many cases the
    current userspace server choices were suboptimal either due to memory
    footprint, performance or difficulty integrating well with advanced
    Linux features.

    ksmbd is a new kernel module which implements the server-side of the
    SMB3 protocol. The target is to provide optimized performance, GPLv2
    SMB server, and better lease handling (distributed caching). The
    bigger goal is to add new features more rapidly (e.g. RDMA aka
    "smbdirect", and recent encryption and signing improvements to the
    protocol) which are easier to develop on a smaller, more tightly
    optimized kernel server than for example in Samba.

    The Samba project is much broader in scope (tools, security services,
    LDAP, Active Directory Domain Controller, and a cross platform file
    server for a wider variety of purposes) but the user space file server
    portion of Samba has proved hard to optimize for some Linux workloads,
    including for smaller devices.

    This is not meant to replace Samba, but rather be an extension to
    allow better optimizing for Linux, and will continue to integrate well
    with Samba user space tools and libraries where appropriate. Working
    with the Samba team we have already made sure that the configuration
    files and xattrs are in a compatible format between the kernel and
    user space server.

    Various types of functional and regression tests are regularly run
    against it. One example is the automated 'buildbot' regression tests
    which use the Linux client to test against ksmbd, e.g.

    http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com/#/builders/8/builds/56

    but other test suites, including Samba's smbtorture functional test
    suite are also used regularly"

    * tag '5.15-rc-first-ksmbd-merge' of git://git.samba.org/ksmbd: (219 commits)
    ksmbd: fix __write_overflow warning in ndr_read_string
    MAINTAINERS: ksmbd: add cifs_common directory to ksmbd entry
    MAINTAINERS: ksmbd: update my email address
    ksmbd: fix permission check issue on chown and chmod
    ksmbd: don't set FILE DELETE and FILE_DELETE_CHILD in access mask by default
    MAINTAINERS: add git adddress of ksmbd
    ksmbd: update SMB3 multi-channel support in ksmbd.rst
    ksmbd: smbd: fix kernel oops during server shutdown
    ksmbd: remove select FS_POSIX_ACL in Kconfig
    ksmbd: use proper errno instead of -1 in smb2_get_ksmbd_tcon()
    ksmbd: update the comment for smb2_get_ksmbd_tcon()
    ksmbd: change int data type to boolean
    ksmbd: Fix multi-protocol negotiation
    ksmbd: fix an oops in error handling in smb2_open()
    ksmbd: add ipv6_addr_v4mapped check to know if connection from client is ipv4
    ksmbd: fix missing error code in smb2_lock
    ksmbd: use channel signingkey for binding SMB2 session setup
    ksmbd: don't set RSS capable in FSCTL_QUERY_NETWORK_INTERFACE_INFO
    ksmbd: Return STATUS_OBJECT_PATH_NOT_FOUND if smb2_creat() returns ENOENT
    ksmbd: fix -Wstringop-truncation warnings
    ...

    Linus Torvalds
     

27 Aug, 2021

1 commit


26 Aug, 2021

1 commit


23 Aug, 2021

1 commit

  • We added CONFIG_MANDATORY_FILE_LOCKING in 2015, and soon after turned it
    off in Fedora and RHEL8. Several other distros have followed suit.

    I've heard of one problem in all that time: Someone migrated from an
    older distro that supported "-o mand" to one that didn't, and the host
    had a fstab entry with "mand" in it which broke on reboot. They didn't
    actually _use_ mandatory locking so they just removed the mount option
    and moved on.

    This patch rips out mandatory locking support wholesale from the kernel,
    along with the Kconfig option and the Documentation file. It also
    changes the mount code to ignore the "mand" mount option instead of
    erroring out, and to throw a big, ugly warning.

    Signed-off-by: Jeff Layton

    Jeff Layton
     

13 Aug, 2021

1 commit


01 Jul, 2021

2 commits

  • When using HUGETLB_PAGE_FREE_VMEMMAP, the freeing unused vmemmap pages
    associated with each HugeTLB page is default off. Now the vmemmap is PMD
    mapped. So there is no side effect when this feature is enabled with no
    HugeTLB pages in the system. Someone may want to enable this feature in
    the compiler time instead of using boot command line. So add a config to
    make it default on when someone do not want to enable it via command line.

    Link: https://lkml.kernel.org/r/20210616094915.34432-4-songmuchun@bytedance.com
    Signed-off-by: Muchun Song
    Cc: Chen Huang
    Cc: David Hildenbrand
    Cc: Jonathan Corbet
    Cc: Michal Hocko
    Cc: Mike Kravetz
    Cc: Oscar Salvador
    Cc: Xiongchun Duan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Muchun Song
     
  • The option HUGETLB_PAGE_FREE_VMEMMAP allows for the freeing of some
    vmemmap pages associated with pre-allocated HugeTLB pages. For example,
    on X86_64 6 vmemmap pages of size 4KB each can be saved for each 2MB
    HugeTLB page. 4094 vmemmap pages of size 4KB each can be saved for each
    1GB HugeTLB page.

    When a HugeTLB page is allocated or freed, the vmemmap array representing
    the range associated with the page will need to be remapped. When a page
    is allocated, vmemmap pages are freed after remapping. When a page is
    freed, previously discarded vmemmap pages must be allocated before
    remapping.

    The config option is introduced early so that supporting code can be
    written to depend on the option. The initial version of the code only
    provides support for x86-64.

    If config HAVE_BOOTMEM_INFO_NODE is enabled, the freeing vmemmap page code
    denpend on it to free vmemmap pages. Otherwise, just use
    free_reserved_page() to free vmemmmap pages. The routine
    register_page_bootmem_info() is used to register bootmem info. Therefore,
    make sure register_page_bootmem_info is enabled if
    HUGETLB_PAGE_FREE_VMEMMAP is defined.

    Link: https://lkml.kernel.org/r/20210510030027.56044-3-songmuchun@bytedance.com
    Signed-off-by: Muchun Song
    Reviewed-by: Oscar Salvador
    Acked-by: Mike Kravetz
    Reviewed-by: Miaohe Lin
    Tested-by: Chen Huang
    Tested-by: Bodeddula Balasubramaniam
    Reviewed-by: Balbir Singh
    Cc: Alexander Viro
    Cc: Andy Lutomirski
    Cc: Anshuman Khandual
    Cc: Barry Song
    Cc: Borislav Petkov
    Cc: Dave Hansen
    Cc: David Hildenbrand
    Cc: David Rientjes
    Cc: HORIGUCHI NAOYA
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Joao Martins
    Cc: Joerg Roedel
    Cc: Jonathan Corbet
    Cc: Matthew Wilcox
    Cc: Michal Hocko
    Cc: Mina Almasry
    Cc: Oliver Neukum
    Cc: Paul E. McKenney
    Cc: Pawan Gupta
    Cc: Peter Zijlstra
    Cc: Randy Dunlap
    Cc: Thomas Gleixner
    Cc: Xiongchun Duan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Muchun Song
     

28 Jun, 2021

1 commit


11 May, 2021

1 commit


08 May, 2021

1 commit

  • Pull NFS client updates from Trond Myklebust:
    "Highlights include:

    Stable fixes:

    - Add validation of the UDP retrans parameter to prevent shift
    out-of-bounds

    - Don't discard pNFS layout segments that are marked for return

    Bugfixes:

    - Fix a NULL dereference crash in xprt_complete_bc_request() when the
    NFSv4.1 server misbehaves.

    - Fix the handling of NFS READDIR cookie verifiers

    - Sundry fixes to ensure attribute revalidation works correctly when
    the server does not return post-op attributes.

    - nfs4_bitmask_adjust() must not change the server global bitmasks

    - Fix major timeout handling in the RPC code.

    - NFSv4.2 fallocate() fixes.

    - Fix the NFSv4.2 SEEK_HOLE/SEEK_DATA end-of-file handling

    - Copy offload attribute revalidation fixes

    - Fix an incorrect filehandle size check in the pNFS flexfiles driver

    - Fix several RDMA transport setup/teardown races

    - Fix several RDMA queue wrapping issues

    - Fix a misplaced memory read barrier in sunrpc's call_decode()

    Features:

    - Micro optimisation of the TCP transmission queue using TCP_CORK

    - statx() performance improvements by further splitting up the
    tracking of invalid cached file metadata.

    - Support the NFSv4.2 'change_attr_type' attribute and use it to
    optimise handling of change attribute updates"

    * tag 'nfs-for-5.13-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (85 commits)
    xprtrdma: Fix a NULL dereference in frwr_unmap_sync()
    sunrpc: Fix misplaced barrier in call_decode
    NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code.
    xprtrdma: Move fr_mr field to struct rpcrdma_mr
    xprtrdma: Move the Work Request union to struct rpcrdma_mr
    xprtrdma: Move fr_linv_done field to struct rpcrdma_mr
    xprtrdma: Move cqe to struct rpcrdma_mr
    xprtrdma: Move fr_cid to struct rpcrdma_mr
    xprtrdma: Remove the RPC/RDMA QP event handler
    xprtrdma: Don't display r_xprt memory addresses in tracepoints
    xprtrdma: Add an rpcrdma_mr_completion_class
    xprtrdma: Add tracepoints showing FastReg WRs and remote invalidation
    xprtrdma: Avoid Send Queue wrapping
    xprtrdma: Do not wake RPC consumer on a failed LocalInv
    xprtrdma: Do not recycle MR after FastReg/LocalInv flushes
    xprtrdma: Clarify use of barrier in frwr_wc_localinv_done()
    xprtrdma: Rename frwr_release_mr()
    xprtrdma: rpcrdma_mr_pop() already does list_del_init()
    xprtrdma: Delete rpcrdma_recv_buffer_put()
    xprtrdma: Fix cwnd update ordering
    ...

    Linus Torvalds
     

06 May, 2021

1 commit

  • SYS_SUPPORTS_HUGETLBFS config has duplicate definitions on platforms
    that subscribe it. Instead, just make it a generic option which can be
    selected on applicable platforms.

    Also rename it as ARCH_SUPPORTS_HUGETLBFS instead. This reduces code
    duplication and makes it cleaner.

    Link: https://lkml.kernel.org/r/1617259448-22529-3-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Anshuman Khandual
    Acked-by: Catalin Marinas [arm64]
    Acked-by: Palmer Dabbelt [riscv]
    Acked-by: Michael Ellerman [powerpc]
    Cc: Russell King
    Cc: Will Deacon
    Cc: Thomas Bogendoerfer
    Cc: "James E.J. Bottomley"
    Cc: Helge Deller
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Walmsley
    Cc: Albert Ou
    Cc: Yoshinori Sato
    Cc: Rich Felker
    Cc: Alexander Viro
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Christian Borntraeger
    Cc: Heiko Carstens
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Vasily Gorbik
    Cc: Vineet Gupta
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     

26 Apr, 2021

1 commit


23 Apr, 2021

1 commit

  • Add a pair of helper functions:

    (*) netfs_readahead()
    (*) netfs_readpage()

    to do the work of handling a readahead or a readpage, where the page(s)
    that form part of the request may be split between the local cache, the
    server or just require clearing, and may be single pages and transparent
    huge pages. This is all handled within the helper.

    Note that while both will read from the cache if there is data present,
    only netfs_readahead() will expand the request beyond what it was asked to
    do, and only netfs_readahead() will write back to the cache.

    netfs_readpage(), on the other hand, is synchronous and only fetches the
    page (which might be a THP) it is asked for.

    The netfs gives the helper parameters from the VM, the cache cookie it
    wants to use (or NULL) and a table of operations (only one of which is
    mandatory):

    (*) expand_readahead() [optional]

    Called to allow the netfs to request an expansion of a readahead
    request to meet its own alignment requirements. This is done by
    changing rreq->start and rreq->len.

    (*) clamp_length() [optional]

    Called to allow the netfs to cut down a subrequest to meet its own
    boundary requirements. If it does this, the helper will generate
    additional subrequests until the full request is satisfied.

    (*) is_still_valid() [optional]

    Called to find out if the data just read from the cache has been
    invalidated and must be reread from the server.

    (*) issue_op() [required]

    Called to ask the netfs to issue a read to the server. The subrequest
    describes the read. The read request holds information about the file
    being accessed.

    The netfs can cache information in rreq->netfs_priv.

    Upon completion, the netfs should set the error, transferred and can
    also set FSCACHE_SREQ_CLEAR_TAIL and then call
    fscache_subreq_terminated().

    (*) done() [optional]

    Called after the pages have been unlocked. The read request is still
    pinning the file and mapping and may still be pinning pages with
    PG_fscache. rreq->error indicates any error that has been
    accumulated.

    (*) cleanup() [optional]

    Called when the helper is disposing of a finished read request. This
    allows the netfs to clear rreq->netfs_priv.

    Netfs support is enabled with CONFIG_NETFS_SUPPORT=y. It will be built
    even if CONFIG_FSCACHE=n and in this case much of it should be optimised
    away, allowing the filesystem to use it even when caching is disabled.

    Changes:
    v5:
    - Comment why netfs_readahead() is putting pages[2].
    - Use page_file_mapping() rather than page->mapping[2].
    - Use page_index() rather than page->index[2].
    - Use set_page_fscache()[3] rather then SetPageFsCache() as this takes an
    appropriate ref too[4].

    v4:
    - Folded in a kerneldoc comment fix.
    - Folded in a fix for the error handling in the case that ENOMEM occurs.
    - Added flag to netfs_subreq_terminated() to indicate that the caller may
    have been running async and stuff that might sleep needs punting to a
    workqueue (can't use in_softirq()[1]).

    Signed-off-by: David Howells
    Reviewed-and-tested-by: Jeff Layton
    Tested-by: Dave Wysochanski
    Tested-By: Marc Dionne
    cc: Matthew Wilcox
    cc: linux-mm@kvack.org
    cc: linux-cachefs@redhat.com
    cc: linux-afs@lists.infradead.org
    cc: linux-nfs@vger.kernel.org
    cc: linux-cifs@vger.kernel.org
    cc: ceph-devel@vger.kernel.org
    cc: v9fs-developer@lists.sourceforge.net
    cc: linux-fsdevel@vger.kernel.org
    Link: https://lore.kernel.org/r/20210216084230.GA23669@lst.de/ [1]
    Link: https://lore.kernel.org/r/20210321014202.GF3420@casper.infradead.org/ [2]
    Link: https://lore.kernel.org/r/2499407.1616505440@warthog.procyon.org.uk/ [3]
    Link: https://lore.kernel.org/r/CAHk-=wh+2gbF7XEjYc=HV9w_2uVzVf7vs60BPz0gFA=+pUm3ww@mail.gmail.com/ [4]
    Link: https://lore.kernel.org/r/160588497406.3465195.18003475695899726222.stgit@warthog.procyon.org.uk/ # rfc
    Link: https://lore.kernel.org/r/161118136849.1232039.8923686136144228724.stgit@warthog.procyon.org.uk/ # rfc
    Link: https://lore.kernel.org/r/161161032290.2537118.13400578415247339173.stgit@warthog.procyon.org.uk/ # v2
    Link: https://lore.kernel.org/r/161340394873.1303470.6237319335883242536.stgit@warthog.procyon.org.uk/ # v3
    Link: https://lore.kernel.org/r/161539537375.286939.16642940088716990995.stgit@warthog.procyon.org.uk/ # v4
    Link: https://lore.kernel.org/r/161653795430.2770958.4947584573720000554.stgit@warthog.procyon.org.uk/ # v5
    Link: https://lore.kernel.org/r/161789076581.6155.6745849361504760209.stgit@warthog.procyon.org.uk/ # v6

    David Howells
     

08 Mar, 2021

1 commit

  • Both s390 and alpha have been switched to 64-bit ino_t with
    commit 96c0a6a72d18 ("s390,alpha: switch to 64-bit ino_t").
    Therefore enable TMPFS_INODE64 for both architectures again.

    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Link: https://lore.kernel.org/linux-mm/YCV7QiyoweJwvN+m@osiris/
    Signed-off-by: Heiko Carstens

    Heiko Carstens
     

22 Feb, 2021

1 commit

  • Pull nfsd updates from Chuck Lever:

    - Update NFSv2 and NFSv3 XDR decoding functions

    - Further improve support for re-exporting NFS mounts

    - Convert NFSD stats to per-CPU counters

    - Add batch Receive posting to the server's RPC/RDMA transport

    * tag 'nfsd-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (65 commits)
    nfsd: skip some unnecessary stats in the v4 case
    nfs: use change attribute for NFS re-exports
    NFSv4_2: SSC helper should use its own config.
    nfsd: cstate->session->se_client -> cstate->clp
    nfsd: simplify nfsd4_check_open_reclaim
    nfsd: remove unused set_client argument
    nfsd: find_cpntf_state cleanup
    nfsd: refactor set_client
    nfsd: rename lookup_clientid->set_client
    nfsd: simplify nfsd_renew
    nfsd: simplify process_lock
    nfsd4: simplify process_lookup1
    SUNRPC: Correct a comment
    svcrdma: DMA-sync the receive buffer in svc_rdma_recvfrom()
    svcrdma: Reduce Receive doorbell rate
    svcrdma: Deprecate stat variables that are no longer used
    svcrdma: Restore read and write stats
    svcrdma: Convert rdma_stat_sq_starve to a per-CPU counter
    svcrdma: Convert rdma_stat_recv to a per-CPU counter
    svcrdma: Refactor svc_rdma_init() and svc_rdma_clean_up()
    ...

    Linus Torvalds
     

10 Feb, 2021

2 commits

  • As with s390, alpha is a 64-bit architecture with a 32-bit ino_t. With
    CONFIG_TMPFS_INODE64=y tmpfs mounts will get 64-bit inode numbers and
    display "inode64" in the mount options, whereas passing "inode64" in the
    mount options will fail. This leads to erroneous behaviours such as
    this:

    # mkdir mnt
    # mount -t tmpfs nodev mnt
    # mount -o remount,rw mnt
    mount: /home/ubuntu/mnt: mount point not mounted or bad option.

    Prevent CONFIG_TMPFS_INODE64 from being selected on alpha.

    Link: https://lkml.kernel.org/r/20210208215726.608197-1-seth.forshee@canonical.com
    Fixes: ea3271f7196c ("tmpfs: support 64-bit inums per-sb")
    Signed-off-by: Seth Forshee
    Acked-by: Hugh Dickins
    Cc: Chris Down
    Cc: Amir Goldstein
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: [5.9+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seth Forshee
     
  • Currently there is an assumption in tmpfs that 64-bit architectures also
    have a 64-bit ino_t. This is not true on s390 which has a 32-bit ino_t.
    With CONFIG_TMPFS_INODE64=y tmpfs mounts will get 64-bit inode numbers
    and display "inode64" in the mount options, but passing the "inode64"
    mount option will fail. This leads to the following behavior:

    # mkdir mnt
    # mount -t tmpfs nodev mnt
    # mount -o remount,rw mnt
    mount: /home/ubuntu/mnt: mount point not mounted or bad option.

    As mount sees "inode64" in the mount options and thus passes it in the
    options for the remount.

    So prevent CONFIG_TMPFS_INODE64 from being selected on s390.

    Link: https://lkml.kernel.org/r/20210205230620.518245-1-seth.forshee@canonical.com
    Fixes: ea3271f7196c ("tmpfs: support 64-bit inums per-sb")
    Signed-off-by: Seth Forshee
    Acked-by: Hugh Dickins
    Cc: Chris Down
    Cc: Hugh Dickins
    Cc: Amir Goldstein
    Cc: Heiko Carstens
    Cc: Vasily Gorbik
    Cc: Christian Borntraeger
    Cc: [5.9+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seth Forshee
     

28 Jan, 2021

1 commit

  • Currently NFSv4_2 SSC helper, nfs_ssc, incorrectly uses GRACE_PERIOD
    as its config. Fix by adding new config NFS_V4_2_SSC_HELPER which
    depends on NFS_V4_2 and is automatically selected when NFSD_V4 is
    enabled. Also removed the file name from a comment in nfs_ssc.c.

    Signed-off-by: Dai Ngo
    Signed-off-by: Chuck Lever

    Dai Ngo
     

08 Aug, 2020

1 commit

  • The default is still set to inode32 for backwards compatibility, but
    system administrators can opt in to the new 64-bit inode numbers by
    either:

    1. Passing inode64 on the command line when mounting, or
    2. Configuring the kernel with CONFIG_TMPFS_INODE64=y

    The inode64 and inode32 names are used based on existing precedent from
    XFS.

    [hughd@google.com: Kconfig fixes]
    Link: http://lkml.kernel.org/r/alpine.LSU.2.11.2008011928010.13320@eggly.anvils

    Signed-off-by: Chris Down
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Reviewed-by: Amir Goldstein
    Acked-by: Hugh Dickins
    Cc: Al Viro
    Cc: Matthew Wilcox
    Cc: Jeff Layton
    Cc: Johannes Weiner
    Cc: Tejun Heo
    Link: http://lkml.kernel.org/r/8b23758d0c66b5e2263e08baf9c4b6a7565cbd8f.1594661218.git.chris@chrisdown.name
    Signed-off-by: Linus Torvalds

    Chris Down
     

14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

21 Apr, 2020

1 commit

  • Some filesystem references got broken by a previous patch
    series I submitted. Address those.

    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: David Sterba # fs/affs/Kconfig
    Link: https://lore.kernel.org/r/57318c53008dbda7f6f4a5a9e5787f4d37e8565a.1586881715.git.mchehab+huawei@kernel.org
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab
     

06 Mar, 2020

1 commit


10 Feb, 2020

1 commit

  • Pull new zonefs file system from Damien Le Moal:
    "Zonefs is a very simple file system exposing each zone of a zoned
    block device as a file.

    Unlike a regular file system with native zoned block device support
    (e.g. f2fs or the on-going btrfs effort), zonefs does not hide the
    sequential write constraint of zoned block devices to the user. As a
    result, zonefs is not a POSIX compliant file system. Its goal is to
    simplify the implementation of zoned block devices support in
    applications by replacing raw block device file accesses with a richer
    file based API, avoiding relying on direct block device file ioctls
    which may be more obscure to developers.

    One example of this approach is the implementation of LSM
    (log-structured merge) tree structures (such as used in RocksDB and
    LevelDB) on zoned block devices by allowing SSTables to be stored in a
    zone file similarly to a regular file system rather than as a range of
    sectors of a zoned device. The introduction of the higher level
    construct "one file is one zone" can help reducing the amount of
    changes needed in the application while at the same time allowing the
    use of zoned block devices with various programming languages other
    than C.

    Zonefs IO management implementation uses the new iomap generic code.
    Zonefs has been successfully tested using a functional test suite
    (available with zonefs userland format tool on github) and a prototype
    implementation of LevelDB on top of zonefs"

    * tag 'zonefs-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
    zonefs: Add documentation
    fs: New zonefs file system

    Linus Torvalds
     

09 Feb, 2020

1 commit

  • VirtualBox hosts can share folders with guests, this commit adds a
    VFS driver implementing the Linux-guest side of this, allowing folders
    exported by the host to be mounted under Linux.

    This driver depends on the guest host IPC functions exported by
    the vboxguest driver.

    Acked-by: Christoph Hellwig
    Signed-off-by: Hans de Goede
    Signed-off-by: Al Viro

    Hans de Goede
     

07 Feb, 2020

1 commit

  • zonefs is a very simple file system exposing each zone of a zoned block
    device as a file. Unlike a regular file system with zoned block device
    support (e.g. f2fs), zonefs does not hide the sequential write
    constraint of zoned block devices to the user. Files representing
    sequential write zones of the device must be written sequentially
    starting from the end of the file (append only writes).

    As such, zonefs is in essence closer to a raw block device access
    interface than to a full featured POSIX file system. The goal of zonefs
    is to simplify the implementation of zoned block device support in
    applications by replacing raw block device file accesses with a richer
    file API, avoiding relying on direct block device file ioctls which may
    be more obscure to developers. One example of this approach is the
    implementation of LSM (log-structured merge) tree structures (such as
    used in RocksDB and LevelDB) on zoned block devices by allowing SSTables
    to be stored in a zone file similarly to a regular file system rather
    than as a range of sectors of a zoned device. The introduction of the
    higher level construct "one file is one zone" can help reducing the
    amount of changes needed in the application as well as introducing
    support for different application programming languages.

    Zonefs on-disk metadata is reduced to an immutable super block to
    persistently store a magic number and optional feature flags and
    values. On mount, zonefs uses blkdev_report_zones() to obtain the device
    zone configuration and populates the mount point with a static file tree
    solely based on this information. E.g. file sizes come from the device
    zone type and write pointer offset managed by the device itself.

    The zone files created on mount have the following characteristics.
    1) Files representing zones of the same type are grouped together
    under a common sub-directory:
    * For conventional zones, the sub-directory "cnv" is used.
    * For sequential write zones, the sub-directory "seq" is used.
    These two directories are the only directories that exist in zonefs.
    Users cannot create other directories and cannot rename nor delete
    the "cnv" and "seq" sub-directories.
    2) The name of zone files is the number of the file within the zone
    type sub-directory, in order of increasing zone start sector.
    3) The size of conventional zone files is fixed to the device zone size.
    Conventional zone files cannot be truncated.
    4) The size of sequential zone files represent the file's zone write
    pointer position relative to the zone start sector. Truncating these
    files is allowed only down to 0, in which case, the zone is reset to
    rewind the zone write pointer position to the start of the zone, or
    up to the zone size, in which case the file's zone is transitioned
    to the FULL state (finish zone operation).
    5) All read and write operations to files are not allowed beyond the
    file zone size. Any access exceeding the zone size is failed with
    the -EFBIG error.
    6) Creating, deleting, renaming or modifying any attribute of files and
    sub-directories is not allowed.
    7) There are no restrictions on the type of read and write operations
    that can be issued to conventional zone files. Buffered, direct and
    mmap read & write operations are accepted. For sequential zone files,
    there are no restrictions on read operations, but all write
    operations must be direct IO append writes. mmap write of sequential
    files is not allowed.

    Several optional features of zonefs can be enabled at format time.
    * Conventional zone aggregation: ranges of contiguous conventional
    zones can be aggregated into a single larger file instead of the
    default one file per zone.
    * File ownership: The owner UID and GID of zone files is by default 0
    (root) but can be changed to any valid UID/GID.
    * File access permissions: the default 640 access permissions can be
    changed.

    The mkzonefs tool is used to format zoned block devices for use with
    zonefs. This tool is available on Github at:

    git@github.com:damien-lemoal/zonefs-tools.git.

    zonefs-tools also includes a test suite which can be run against any
    zoned block device, including null_blk block device created with zoned
    mode.

    Example: the following formats a 15TB host-managed SMR HDD with 256 MB
    zones with the conventional zones aggregation feature enabled.

    $ sudo mkzonefs -o aggr_cnv /dev/sdX
    $ sudo mount -t zonefs /dev/sdX /mnt
    $ ls -l /mnt/
    total 0
    dr-xr-xr-x 2 root root 1 Nov 25 13:23 cnv
    dr-xr-xr-x 2 root root 55356 Nov 25 13:23 seq

    The size of the zone files sub-directories indicate the number of files
    existing for each type of zones. In this example, there is only one
    conventional zone file (all conventional zones are aggregated under a
    single file).

    $ ls -l /mnt/cnv
    total 137101312
    -rw-r----- 1 root root 140391743488 Nov 25 13:23 0

    This aggregated conventional zone file can be used as a regular file.

    $ sudo mkfs.ext4 /mnt/cnv/0
    $ sudo mount -o loop /mnt/cnv/0 /data

    The "seq" sub-directory grouping files for sequential write zones has
    in this example 55356 zones.

    $ ls -lv /mnt/seq
    total 14511243264
    -rw-r----- 1 root root 0 Nov 25 13:23 0
    -rw-r----- 1 root root 0 Nov 25 13:23 1
    -rw-r----- 1 root root 0 Nov 25 13:23 2
    ...
    -rw-r----- 1 root root 0 Nov 25 13:23 55354
    -rw-r----- 1 root root 0 Nov 25 13:23 55355

    For sequential write zone files, the file size changes as data is
    appended at the end of the file, similarly to any regular file system.

    $ dd if=/dev/zero of=/mnt/seq/0 bs=4K count=1 conv=notrunc oflag=direct
    1+0 records in
    1+0 records out
    4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000452219 s, 9.1 MB/s

    $ ls -l /mnt/seq/0
    -rw-r----- 1 root root 4096 Nov 25 13:23 /mnt/seq/0

    The written file can be truncated to the zone size, preventing any
    further write operation.

    $ truncate -s 268435456 /mnt/seq/0
    $ ls -l /mnt/seq/0
    -rw-r----- 1 root root 268435456 Nov 25 13:49 /mnt/seq/0

    Truncation to 0 size allows freeing the file zone storage space and
    restart append-writes to the file.

    $ truncate -s 0 /mnt/seq/0
    $ ls -l /mnt/seq/0
    -rw-r----- 1 root root 0 Nov 25 13:49 /mnt/seq/0

    Since files are statically mapped to zones on the disk, the number of
    blocks of a file as reported by stat() and fstat() indicates the size
    of the file zone.

    $ stat /mnt/seq/0
    File: /mnt/seq/0
    Size: 0 Blocks: 524288 IO Block: 4096 regular empty file
    Device: 870h/2160d Inode: 50431 Links: 1
    Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 0/ root)
    Access: 2019-11-25 13:23:57.048971997 +0900
    Modify: 2019-11-25 13:52:25.553805765 +0900
    Change: 2019-11-25 13:52:25.553805765 +0900
    Birth: -

    The number of blocks of the file ("Blocks") in units of 512B blocks
    gives the maximum file size of 524288 * 512 B = 256 MB, corresponding
    to the device zone size in this example. Of note is that the "IO block"
    field always indicates the minimum IO size for writes and corresponds
    to the device physical sector size.

    This code contains contributions from:
    * Johannes Thumshirn ,
    * Darrick J. Wong ,
    * Christoph Hellwig ,
    * Chaitanya Kulkarni and
    * Ting Yao .

    Signed-off-by: Damien Le Moal
    Reviewed-by: Dave Chinner

    Damien Le Moal
     

30 Oct, 2019

1 commit

  • This adds support for io-wq, a smaller and specialized thread pool
    implementation. This is meant to replace workqueues for io_uring. Among
    the reasons for this addition are:

    - We can assign memory context smarter and more persistently if we
    manage the life time of threads.

    - We can drop various work-arounds we have in io_uring, like the
    async_list.

    - We can implement hashed work insertion, to manage concurrency of
    buffered writes without needing a) an extra workqueue, or b)
    needlessly making the concurrency of said workqueue very low
    which hurts performance of multiple buffered file writers.

    - We can implement cancel through signals, for cancelling
    interruptible work like read/write (or send/recv) to/from sockets.

    - We need the above cancel for being able to assign and use file tables
    from a process.

    - We can implement a more thorough cancel operation in general.

    - We need it to move towards a syslet/threadlet model for even faster
    async execution. For that we need to take ownership of the used
    threads.

    This list is just off the top of my head. Performance should be the
    same, or better, at least that's what I've seen in my testing. io-wq
    supports basic NUMA functionality, setting up a pool per node.

    io-wq hooks up to the scheduler schedule in/out just like workqueue
    and uses that to drive the need for more/less workers.

    Acked-by: Peter Zijlstra (Intel)
    Signed-off-by: Jens Axboe

    Jens Axboe
     

19 Sep, 2019

1 commit

  • Pull fs-verity support from Eric Biggers:
    "fs-verity is a filesystem feature that provides Merkle tree based
    hashing (similar to dm-verity) for individual readonly files, mainly
    for the purpose of efficient authenticity verification.

    This pull request includes:

    (a) The fs/verity/ support layer and documentation.

    (b) fs-verity support for ext4 and f2fs.

    Compared to the original fs-verity patchset from last year, the UAPI
    to enable fs-verity on a file has been greatly simplified. Lots of
    other things were cleaned up too.

    fs-verity is planned to be used by two different projects on Android;
    most of the userspace code is in place already. Another userspace tool
    ("fsverity-utils"), and xfstests, are also available. e2fsprogs and
    f2fs-tools already have fs-verity support. Other people have shown
    interest in using fs-verity too.

    I've tested this on ext4 and f2fs with xfstests, both the existing
    tests and the new fs-verity tests. This has also been in linux-next
    since July 30 with no reported issues except a couple minor ones I
    found myself and folded in fixes for.

    Ted and I will be co-maintaining fs-verity"

    * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
    f2fs: add fs-verity support
    ext4: update on-disk format documentation for fs-verity
    ext4: add fs-verity read support
    ext4: add basic fs-verity support
    fs-verity: support builtin file signatures
    fs-verity: add SHA-512 support
    fs-verity: implement FS_IOC_MEASURE_VERITY ioctl
    fs-verity: implement FS_IOC_ENABLE_VERITY ioctl
    fs-verity: add data verification hooks for ->readpages()
    fs-verity: add the hook for file ->setattr()
    fs-verity: add the hook for file ->open()
    fs-verity: add inode and superblock fields
    fs-verity: add Kconfig and the helper functions for hashing
    fs: uapi: define verity bit for FS_IOC_GETFLAGS
    fs-verity: add UAPI header
    fs-verity: add MAINTAINERS file entry
    fs-verity: add a documentation file

    Linus Torvalds
     

24 Aug, 2019

1 commit

  • EROFS filesystem has been merged into linux-staging for a year.

    EROFS is designed to be a better solution of saving extra storage
    space with guaranteed end-to-end performance for read-only files
    with the help of reduced metadata, fixed-sized output compression
    and decompression inplace technologies.

    In the past year, EROFS was greatly improved by many people as
    a staging driver, self-tested, betaed by a large number of our
    internal users, successfully applied to almost all in-service
    HUAWEI smartphones as the part of EMUI 9.1 and proven to be stable
    enough to be moved out of staging.

    EROFS is a self-contained filesystem driver. Although there are
    still some TODOs to be more generic, we have a dedicated team
    actively keeping on working on EROFS in order to make it better
    with the evolution of Linux kernel as the other in-kernel filesystems.

    As Pavel suggested, it's better to do as one commit since git
    can do moves and all histories will be saved in this way.

    Let's promote it from staging and enhance it more actively as
    a "real" part of kernel for more wider scenarios!

    Cc: Greg Kroah-Hartman
    Cc: Alexander Viro
    Cc: Andrew Morton
    Cc: Stephen Rothwell
    Cc: Theodore Ts'o
    Cc: Pavel Machek
    Cc: David Sterba
    Cc: Amir Goldstein
    Cc: Christoph Hellwig
    Cc: Darrick J . Wong
    Cc: Dave Chinner
    Cc: Jaegeuk Kim
    Cc: Jan Kara
    Cc: Richard Weinberger
    Cc: Linus Torvalds
    Cc: Chao Yu
    Cc: Miao Xie
    Cc: Li Guifu
    Cc: Fang Wei
    Signed-off-by: Gao Xiang
    Link: https://lore.kernel.org/r/20190822213659.5501-1-hsiangkao@aol.com
    Signed-off-by: Greg Kroah-Hartman

    Gao Xiang
     

29 Jul, 2019

1 commit


05 Jul, 2019

1 commit

  • CONFIG_VALIDATE_FS_PARSER is a debugging tool to check that the parser
    tables are vaguely sane. It was set to default to 'Y' for the moment to
    catch errors in upcoming fs conversion development.

    Make sure it is not enabled by default in the final release of v5.1.

    Fixes: 31d921c7fb969172 ("vfs: Add configuration parser helpers")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Al Viro

    Geert Uytterhoeven
     

21 May, 2019

1 commit


26 Apr, 2019

1 commit

  • The decomposition and casefolding of UTF-8 characters are described in a
    prefix tree in utf8data.h, which is a generate from the Unicode
    Character Database (UCD), published by the Unicode Consortium, and
    should not be edited by hand. The structures in utf8data.h are meant to
    be used for lookup operations by the unicode subsystem, when decoding a
    utf-8 string.

    mkutf8data.c is the source for a program that generates utf8data.h. It
    was written by Olaf Weber from SGI and originally proposed to be merged
    into Linux in 2014. The original proposal performed the compatibility
    decomposition, NFKD, but the current version was modified by me to do
    canonical decomposition, NFD, as suggested by the community. The
    changes from the original submission are:

    * Rebase to mainline.
    * Fix out-of-tree-build.
    * Update makefile to build 11.0.0 ucd files.
    * drop references to xfs.
    * Convert NFKD to NFD.
    * Merge back robustness fixes from original patch. Requested by
    Dave Chinner.

    The original submission is archived at:

    The utf8data.h file can be regenerated using the instructions in
    fs/unicode/README.utf8data.

    - Notes on the update from 8.0.0 to 11.0:

    The structure of the ucd files and special cases have not experienced
    any changes between versions 8.0.0 and 11.0.0. 8.0.0 saw the addition
    of Cherokee LC characters, which is an interesting case for
    case-folding. The update is accompanied by new tests on the test_ucd
    module to catch specific cases. No changes to mkutf8data script were
    required for the updates.

    Signed-off-by: Gabriel Krisman Bertazi
    Signed-off-by: Theodore Ts'o

    Gabriel Krisman Bertazi
     

13 Mar, 2019

1 commit

  • Pull vfs mount infrastructure updates from Al Viro:
    "The rest of core infrastructure; no new syscalls in that pile, but the
    old parts are switched to new infrastructure. At that point
    conversions of individual filesystems can happen independently; some
    are done here (afs, cgroup, procfs, etc.), there's also a large series
    outside of that pile dealing with NFS (quite a bit of option-parsing
    stuff is getting used there - it's one of the most convoluted
    filesystems in terms of mount-related logics), but NFS bits are the
    next cycle fodder.

    It got seriously simplified since the last cycle; documentation is
    probably the weakest bit at the moment - I considered dropping the
    commit introducing Documentation/filesystems/mount_api.txt (cutting
    the size increase by quarter ;-), but decided that it would be better
    to fix it up after -rc1 instead.

    That pile allows to do followup work in independent branches, which
    should make life much easier for the next cycle. fs/super.c size
    increase is unpleasant; there's a followup series that allows to
    shrink it considerably, but I decided to leave that until the next
    cycle"

    * 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (41 commits)
    afs: Use fs_context to pass parameters over automount
    afs: Add fs_context support
    vfs: Add some logging to the core users of the fs_context log
    vfs: Implement logging through fs_context
    vfs: Provide documentation for new mount API
    vfs: Remove kern_mount_data()
    hugetlbfs: Convert to fs_context
    cpuset: Use fs_context
    kernfs, sysfs, cgroup, intel_rdt: Support fs_context
    cgroup: store a reference to cgroup_ns into cgroup_fs_context
    cgroup1_get_tree(): separate "get cgroup_root to use" into a separate helper
    cgroup_do_mount(): massage calling conventions
    cgroup: stash cgroup_root reference into cgroup_fs_context
    cgroup2: switch to option-by-option parsing
    cgroup1: switch to option-by-option parsing
    cgroup: take options parsing into ->parse_monolithic()
    cgroup: fold cgroup1_mount() into cgroup1_get_tree()
    cgroup: start switching to fs_context
    ipc: Convert mqueue fs to fs_context
    proc: Add fs_context support to procfs
    ...

    Linus Torvalds