11 Apr, 2018

1 commit

  • Pull ceph updates from Ilya Dryomov:
    "The big ticket items are:

    - support for rbd "fancy" striping (myself).

    The striping feature bit is now fully implemented, allowing mapping
    v2 images with non-default striping patterns. This completes
    support for --image-format 2.

    - CephFS quota support (Luis Henriques and Zheng Yan).

    This set is based on the new SnapRealm code in the upcoming v13.y.z
    ("Mimic") release. Quota handling will be rejected on older
    filesystems.

    - memory usage improvements in CephFS (Chengguang Xu).

    Directory specific bits have been split out of ceph_file_info and
    some effort went into improving cap reservation code to avoid OOM
    crashes.

    Also included a bunch of assorted fixes all over the place from
    Chengguang and others"

    * tag 'ceph-for-4.17-rc1' of git://github.com/ceph/ceph-client: (67 commits)
    ceph: quota: report root dir quota usage in statfs
    ceph: quota: add counter for snaprealms with quota
    ceph: quota: cache inode pointer in ceph_snap_realm
    ceph: fix root quota realm check
    ceph: don't check quota for snap inode
    ceph: quota: update MDS when max_bytes is approaching
    ceph: quota: support for ceph.quota.max_bytes
    ceph: quota: don't allow cross-quota renames
    ceph: quota: support for ceph.quota.max_files
    ceph: quota: add initial infrastructure to support cephfs quotas
    rbd: remove VLA usage
    rbd: fix spelling mistake: "reregisteration" -> "reregistration"
    ceph: rename function drop_leases() to a more descriptive name
    ceph: fix invalid point dereference for error case in mdsc destroy
    ceph: return proper bool type to caller instead of pointer
    ceph: optimize memory usage
    ceph: optimize mds session register
    libceph, ceph: add __init attribution to init funcitons
    ceph: filter out used flags when printing unused open flags
    ceph: don't wait on writeback when there is no more dirty pages
    ...

    Linus Torvalds
     

10 Apr, 2018

1 commit

  • Pull orangefs updates from Mike Marshall:
    "Fixes and cleanups:

    - Documentation cleanups

    - removal of unused code

    - make some structs static

    - implement Orangefs vm_operations fault callout

    - eliminate two single-use functions and put their cleaned up code in
    line.

    - replace a vmalloc/memset instance with vzalloc

    - fix a race condition bug in wait code"

    * tag 'for-linus-4.17-ofs' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
    Orangefs: documentation updates
    orangefs: document package install and xfstests procedure
    orangefs: remove unused code
    orangefs: make several *_operations structs static
    orangefs: implement vm_ops->fault
    orangefs: open code short single-use functions
    orangefs: replace vmalloc and memset with vzalloc
    orangefs: bug fix for a race condition when getting a slot

    Linus Torvalds
     

08 Apr, 2018

1 commit

  • Pull fscache updates from David Howells:
    "Three patches that fix some of AFS's usage of fscache:

    (1) Need to invalidate the cache if a foreign data change is detected
    on the server.

    (2) Move the vnode ID uniquifier (equivalent to i_generation) from
    the auxiliary data to the index key to prevent a race between
    file delete and a subsequent file create seeing the same index
    key.

    (3) Need to retire cookies that correspond to files that we think got
    deleted on the server.

    Four patches to fix some things in fscache and cachefiles:

    (4) Fix a couple of checker warnings.

    (5) Correctly indicate to the end-of-operation callback whether an
    operation completed or was cancelled.

    (6) Add a check for multiple cookie relinquishment.

    (7) Fix a path through the asynchronous write that doesn't wake up a
    waiter for a page if the cache decides not to write that page,
    but discards it instead.

    A couple of patches to add tracepoints to fscache and cachefiles:

    (8) Add tracepoints for cookie operators, object state machine
    execution, cachefiles object management and cachefiles VFS
    operations.

    (9) Add tracepoints for fscache operation management and page
    wrangling.

    And then three development patches:

    (10) Attach the index key and auxiliary data to the cookie, pass this
    information through various fscache-netfs API functions and get
    rid of the callbacks to the netfs to get it.

    This means that the cache can get at this information, even if
    the netfs goes away. It also means that the cache can be lazy in
    updating the coherency data.

    (11) Pass the object data size through various fscache-netfs API
    rather than calling back to the netfs for it, and store the value
    in the object.

    This makes it easier to correctly resize the object, as the size
    is updated on writes to the cache, rather than calling back out
    to the netfs.

    (12) Maintain a catalogue of allocated cookies. This makes it possible
    to catch cookie collision up front rather than down in the bowels
    of the cache being run from a service thread from the object
    state machine.

    This will also make it possible in the future to reconnect to a
    cookie that's not gone dead yet because it's waiting for
    finalisation of the storage and also make it possible to bring
    cookies online if the cache is added after the cookie has been
    obtained"

    * tag 'fscache-next-20180406' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
    fscache: Maintain a catalogue of allocated cookies
    fscache: Pass object size in rather than calling back for it
    fscache: Attach the index key and aux data to the cookie
    fscache: Add more tracepoints
    fscache: Add tracepoints
    fscache: Fix hanging wait on page discarded by writeback
    fscache: Detect multiple relinquishment of a cookie
    fscache: Pass the correct cancelled indications to fscache_op_complete()
    fscache, cachefiles: Fix checker warnings
    afs: Be more aggressive in retiring cached vnodes
    afs: Use the vnode ID uniquifier in the cache key not the aux data
    afs: Invalidate cache on server data change

    Linus Torvalds
     

06 Apr, 2018

3 commits

  • Pass the object size in to fscache_acquire_cookie() and
    fscache_write_page() rather than the netfs providing a callback by which it
    can be received. This makes it easier to update the size of the object
    when a new page is written that extends the object.

    The current object size is also passed by fscache to the check_aux
    function, obviating the need to store it in the aux data.

    Signed-off-by: David Howells
    Acked-by: Anna Schumaker
    Tested-by: Steve Dickson

    David Howells
     
  • Pull misc filesystem updates from Jan Kara:
    "udf, ext2, quota, fsnotify fixes & cleanups:

    - udf fixes for handling of media without uid/gid

    - udf fixes for some corner cases in parsing of volume recognition
    sequence

    - improvements of fsnotify handling of ENOMEM

    - new ioctl to allow setting of watch descriptor id for inotify (for
    checkpoint - restart)

    - small ext2, reiserfs, quota cleanups"

    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    quota: Kill an unused extern entry form quota.h
    reiserfs: Remove VLA from fs/reiserfs/reiserfs.h
    udf: fix potential refcnt problem of nls module
    ext2: change return code to -ENOMEM when failing memory allocation
    udf: Do not mark possibly inconsistent filesystems as closed
    fsnotify: Let userspace know about lost events due to ENOMEM
    fanotify: Avoid lost events due to ENOMEM for unlimited queues
    udf: Remove never implemented mount options
    udf: Update mount option documentation
    udf: Provide saner default for invalid uid / gid
    udf: Clean up handling of invalid uid/gid
    udf: Apply uid/gid mount options also to new inodes & chown
    udf: Ignore [ug]id=ignore mount options
    udf: Fix handling of Partition Descriptors
    udf: Unify common handling of descriptors
    udf: Convert descriptor index definitions to enum
    udf: Allow volume descriptor sequence to be terminated by unrecorded block
    udf: Simplify handling of Volume Descriptor Pointers
    udf: Fix off-by-one in volume descriptor sequence length
    inotify: Extend ioctl to allow to request id of new watch descriptor

    Linus Torvalds
     
  • Pull f2fs update from Jaegeuk Kim:
    "In this round, we've mainly focused on performance tuning and critical
    bug fixes occurred in low-end devices. Sheng Yong introduced
    lost_found feature to keep missing files during recovery instead of
    thrashing them. We're preparing coming fsverity implementation. And,
    we've got more features to communicate with users for better
    performance. In low-end devices, some memory-related issues were
    fixed, and subtle race condtions and corner cases were addressed as
    well.

    Enhancements:
    - large nat bitmaps for more free node ids
    - add three block allocation policies to pass down write hints given by user
    - expose extension list to user and introduce hot file extension
    - tune small devices seamlessly for low-end devices
    - set readdir_ra by default
    - give more resources under gc_urgent mode regarding to discard and cleaning
    - introduce fsync_mode to enforce posix or not
    - nowait aio support
    - add lost_found feature to keep dangling inodes
    - reserve bits for future fsverity feature
    - add test_dummy_encryption for FBE

    Bug fixes:
    - don't use highmem for dentry pages
    - align memory boundary for bitops
    - truncate preallocated blocks in write errors
    - guarantee i_times on fsync call
    - clear CP_TRIMMED_FLAG correctly
    - prevent node chain loop during recovery
    - avoid data race between atomic write and background cleaning
    - avoid unnecessary selinux violation warnings on resgid option
    - GFP_NOFS to avoid deadlock in quota and read paths
    - fix f2fs_skip_inode_update to allow i_size recovery

    In addition to the above, there are several minor bug fixes and clean-ups"

    * tag 'f2fs-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (50 commits)
    f2fs: remain written times to update inode during fsync
    f2fs: make assignment of t->dentry_bitmap more readable
    f2fs: truncate preallocated blocks in error case
    f2fs: fix a wrong condition in f2fs_skip_inode_update
    f2fs: reserve bits for fs-verity
    f2fs: Add a segment type check in inplace write
    f2fs: no need to initialize zero value for GFP_F2FS_ZERO
    f2fs: don't track new nat entry in nat set
    f2fs: clean up with F2FS_BLK_ALIGN
    f2fs: check blkaddr more accuratly before issue a bio
    f2fs: Set GF_NOFS in read_cache_page_gfp while doing f2fs_quota_read
    f2fs: introduce a new mount option test_dummy_encryption
    f2fs: introduce F2FS_FEATURE_LOST_FOUND feature
    f2fs: release locks before return in f2fs_ioc_gc_range()
    f2fs: align memory boundary for bitops
    f2fs: remove unneeded set_cold_node()
    f2fs: add nowait aio support
    f2fs: wrap all options with f2fs_sb_info.mount_opt
    f2fs: Don't overwrite all types of node to keep node chain
    f2fs: introduce mount option for fsync mode
    ...

    Linus Torvalds
     

05 Apr, 2018

2 commits

  • Pull cifs updates from Steve French:
    "Includes SMB3.11 security improvements, as well as various fixes for
    stable and some debugging improvements"

    * tag '4.17-SMB3-Fixes' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: Add minor debug message during negprot
    smb3: Fix root directory when server returns inode number of zero
    cifs: fix sparse warning on previous patch in a few printks
    cifs: add server->vals->header_preamble_size
    cifs: smbd: disconnect transport on RDMA errors
    cifs: smbd: avoid reconnect lockup
    Don't log confusing message on reconnect by default
    Don't log expected error on DFS referral request
    fs: cifs: Replace _free_xid call in cifs_root_iget function
    SMB3.1.1 dialect is no longer experimental
    Tree connect for SMB3.1.1 must be signed for non-encrypted shares
    fix smb3-encryption breakage when CONFIG_DEBUG_SG=y
    CIFS: fix sha512 check in cifs_crypto_secmech_release
    CIFS: implement v3.11 preauth integrity
    CIFS: add sha512 secmech
    CIFS: refactor crypto shash/sdesc allocation&free
    Update README file for cifs.ko
    Update TODO list for cifs.ko
    cifs: fix memory leak in SMB2_open()
    CIFS: SMBD: fix spelling mistake: "faield" and "legnth"

    Linus Torvalds
     
  • Signed-off-by: Mike Marshall

    Mike Marshall
     

04 Apr, 2018

2 commits

  • Attach copies of the index key and auxiliary data to the fscache cookie so
    that:

    (1) The callbacks to the netfs for this stuff can be eliminated. This
    can simplify things in the cache as the information is still
    available, even after the cache has relinquished the cookie.

    (2) Simplifies the locking requirements of accessing the information as we
    don't have to worry about the netfs object going away on us.

    (3) The cache can do lazy updating of the coherency information on disk.
    As long as the cache is flushed before reboot/poweroff, there's no
    need to update the coherency info on disk every time it changes.

    (4) Cookies can be hashed or put in a tree as the index key is easily
    available. This allows:

    (a) Checks for duplicate cookies can be made at the top fscache layer
    rather than down in the bowels of the cache backend.

    (b) Caching can be added to a netfs object that has a cookie if the
    cache is brought online after the netfs object is allocated.

    A certain amount of space is made in the cookie for inline copies of the
    data, but if it won't fit there, extra memory will be allocated for it.

    The downside of this is that live cache operation requires more memory.

    Signed-off-by: David Howells
    Acked-by: Anna Schumaker
    Tested-by: Steve Dickson

    David Howells
     
  • Unless one is working on the userspace code, there's no need to compile
    OrangeFS. The package works just fine.

    (But leave the documentation for building from source since not everyone
    uses distributions which include the package.)

    Also document the process to run xfstests against OrangeFS.

    Signed-off-by: Martin Brandenburg
    Signed-off-by: Mike Marshall

    Martin Brandenburg
     

02 Apr, 2018

4 commits

  • This commit changes statfs default behaviour when reporting usage
    statistics. Instead of using the overall filesystem usage, statfs now
    reports the quota for the filesystem root, if ceph.quota.max_bytes has
    been set for this inode. If quota hasn't been set, it falls back to the
    old statfs behaviour.

    A new mount option is also added ('noquotadf') to disable this behaviour.

    Signed-off-by: Luis Henriques
    Reviewed-by: "Yan, Zheng"
    Signed-off-by: Ilya Dryomov

    Luis Henriques
     
  • This patch adds the infrastructure required to support cephfs quotas as it
    is currently implemented in the ceph fuse client. Cephfs quotas can be
    set on any directory, and can restrict the number of bytes or the number
    of files stored beneath that point in the directory hierarchy.

    Quotas are set using the extended attributes 'ceph.quota.max_files' and
    'ceph.quota.max_bytes', and can be removed by setting these attributes to
    '0'.

    Link: http://tracker.ceph.com/issues/22372
    Signed-off-by: Luis Henriques
    Reviewed-by: "Yan, Zheng"
    Signed-off-by: Ilya Dryomov

    Luis Henriques
     
  • Remove references to two obsolete /proc/fs/cifs parameters
    and update for a few minor SMB3 features.

    Signed-off-by: Steve French

    Steve French
     
  • Update list of items still TODO in cifs.ko

    Signed-off-by: Steve French

    Steve French
     

21 Mar, 2018

1 commit


17 Mar, 2018

2 commits

  • This patch introduces a new mount option `test_dummy_encryption'
    to allow fscrypt to create a fake fscrypt context. This is used
    by xfstests.

    Signed-off-by: Sheng Yong
    Reviewed-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Sheng Yong
     
  • Commit "0a007b97aad6"(f2fs: recover directory operations by fsync)
    fixed xfstest generic/342 case, but it also increased the written
    data and caused the performance degradation. In most cases, there's
    no need to do so heavy fsync actually.

    So we introduce new mount option "fsync_mode={posix,strict}" to
    control the policy of fsync. "fsync_mode=posix" is set by default,
    and means that f2fs uses a light fsync, which follows POSIX semantics.
    And "fsync_mode=strict" means that it's a heavy fsync, which behaves
    in line with xfs, ext4 and btrfs, where generic/342 will pass, but
    the performance will regress.

    Signed-off-by: Junling Zheng
    Reviewed-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Junling Zheng
     

13 Mar, 2018

2 commits


27 Feb, 2018

2 commits


06 Feb, 2018

2 commits

  • Support the AFS dynamic root which is a pseudo-volume that doesn't connect
    to any server resource, but rather is just a root directory that
    dynamically creates mountpoint directories where the name of such a
    directory is the name of the cell.

    Such a mount can be created thus:

    mount -t afs none /afs -o dyn

    Dynamic root superblocks aren't shared except by bind mounts and
    propagation. Cell root volumes can then be mounted by referring to them by
    name, e.g.:

    ls /afs/grand.central.org/
    ls /afs/.grand.central.org/

    The kernel will upcall to consult the DNS if the address wasn't supplied
    directly.

    Signed-off-by: David Howells

    David Howells
     
  • Pull overlayfs updates from Miklos Szeredi:
    "This work from Amir adds NFS export capability to overlayfs. NFS
    exporting an overlay filesystem is a challange because we want to keep
    track of any copy-up of a file or directory between encoding the file
    handle and decoding it.

    This is achieved by indexing copied up objects by lower layer file
    handle. The index is already used for hard links, this patchset
    extends the use to NFS file handle decoding"

    * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: (51 commits)
    ovl: check ERR_PTR() return value from ovl_encode_fh()
    ovl: fix regression in fsnotify of overlay merge dir
    ovl: wire up NFS export operations
    ovl: lookup indexed ancestor of lower dir
    ovl: lookup connected ancestor of dir in inode cache
    ovl: hash non-indexed dir by upper inode for NFS export
    ovl: decode pure lower dir file handles
    ovl: decode indexed dir file handles
    ovl: decode lower file handles of unlinked but open files
    ovl: decode indexed non-dir file handles
    ovl: decode lower non-dir file handles
    ovl: encode lower file handles
    ovl: copy up before encoding non-connectable dir file handle
    ovl: encode non-indexed upper file handles
    ovl: decode connected upper dir file handles
    ovl: decode pure upper file handles
    ovl: encode pure upper file handles
    ovl: document NFS export
    vfs: factor out helpers d_instantiate_anon() and d_alloc_anon()
    ovl: store 'has_upper' and 'opaque' as bit flags
    ...

    Linus Torvalds
     

05 Feb, 2018

1 commit

  • Pull fscrypt updates from Ted Ts'o:
    "Refactor support for encrypted symlinks to move common code to fscrypt"

    Ted also points out about the merge:
    "This makes the f2fs symlink code use the fscrypt_encrypt_symlink()
    from the fscrypt tree. This will end up dropping the kzalloc() ->
    f2fs_kzalloc() change, which means the fscrypt-specific allocation
    won't get tested by f2fs's kmalloc error injection system; which is
    fine"

    * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt: (26 commits)
    fscrypt: fix build with pre-4.6 gcc versions
    fscrypt: remove 'ci' parameter from fscrypt_put_encryption_info()
    fscrypt: document symlink length restriction
    fscrypt: fix up fscrypt_fname_encrypted_size() for internal use
    fscrypt: define fscrypt_fname_alloc_buffer() to be for presented names
    fscrypt: calculate NUL-padding length in one place only
    fscrypt: move fscrypt_symlink_data to fscrypt_private.h
    fscrypt: remove fscrypt_fname_usr_to_disk()
    ubifs: switch to fscrypt_get_symlink()
    ubifs: switch to fscrypt ->symlink() helper functions
    ubifs: free the encrypted symlink target
    f2fs: switch to fscrypt_get_symlink()
    f2fs: switch to fscrypt ->symlink() helper functions
    ext4: switch to fscrypt_get_symlink()
    ext4: switch to fscrypt ->symlink() helper functions
    fscrypt: new helper function - fscrypt_get_symlink()
    fscrypt: new helper functions for ->symlink()
    fscrypt: trim down fscrypt.h includes
    fscrypt: move fscrypt_is_dot_dotdot() to fs/crypto/fname.c
    fscrypt: move fscrypt_valid_enc_modes() to fscrypt_private.h
    ...

    Linus Torvalds
     

04 Feb, 2018

1 commit

  • Pull ext4 updates from Ted Ts'o:
    "Only miscellaneous cleanups and bug fixes for ext4 this cycle"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: create ext4_kset dynamically
    ext4: create ext4_feat kobject dynamically
    ext4: release kobject/kset even when init/register fail
    ext4: fix incorrect indentation of if statement
    ext4: correct documentation for grpid mount option
    ext4: use 'sbi' instead of 'EXT4_SB(sb)'
    ext4: save error to disk in __ext4_grp_locked_error()
    jbd2: fix sphinx kernel-doc build warnings
    ext4: fix a race in the ext4 shutdown path
    mbcache: make sure c_entry_count is not decremented past zero
    ext4: no need flush workqueue before destroying it
    ext4: fixed alignment and minor code cleanup in ext4.h
    ext4: fix ENOSPC handling in DAX page fault handler
    dax: pass detailed error code from dax_iomap_fault()
    mbcache: revert "fs/mbcache.c: make count_objects() more robust"
    mbcache: initialize entry->e_referenced in mb_cache_entry_create()
    ext4: fix up remaining files with SPDX cleanups

    Linus Torvalds
     

03 Feb, 2018

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Highlights:

    - Enable support for memory protection keys aka "pkeys" on Power7/8/9
    when using the hash table MMU.

    - Extend our interrupt soft masking to support masking PMU interrupts
    as well as "normal" interrupts, and then use that to implement
    local_t for a ~4x speedup vs the current atomics-based
    implementation.

    - A new driver "ocxl" for "Open Coherent Accelerator Processor
    Interface (OpenCAPI)" devices.

    - Support for new device tree properties on PowerVM to describe
    hotpluggable memory and devices.

    - Add support for CLOCK_{REALTIME/MONOTONIC}_COARSE to the 64-bit
    VDSO.

    - Freescale updates from Scott: fixes for CPM GPIO and an FSL PCI
    erratum workaround, plus a minor cleanup patch.

    As well as quite a lot of other changes all over the place, and small
    fixes and cleanups as always.

    Thanks to: Alan Modra, Alastair D'Silva, Alexey Kardashevskiy,
    Alistair Popple, Andreas Schwab, Andrew Donnellan, Aneesh Kumar K.V,
    Anju T Sudhakar, Anshuman Khandual, Anton Blanchard, Arnd Bergmann,
    Balbir Singh, Benjamin Herrenschmidt, Bhaktipriya Shridhar, Bryant G.
    Ly, Cédric Le Goater, Christophe Leroy, Christophe Lombard, Cyril Bur,
    David Gibson, Desnes A. Nunes do Rosario, Dmitry Torokhov, Frederic
    Barrat, Geert Uytterhoeven, Guilherme G. Piccoli, Gustavo A. R. Silva,
    Gustavo Romero, Ivan Mikhaylov, Joakim Tjernlund, Joe Perches, Josh
    Poimboeuf, Juan J. Alvarez, Julia Cartwright, Kamalesh Babulal,
    Madhavan Srinivasan, Mahesh Salgaonkar, Mathieu Malaterre, Michael
    Bringmann, Michael Hanselmann, Michael Neuling, Nathan Fontenot,
    Naveen N. Rao, Nicholas Piggin, Paul Mackerras, Philippe Bergheaud,
    Ram Pai, Russell Currey, Santosh Sivaraj, Scott Wood, Seth Forshee,
    Simon Guo, Stewart Smith, Sukadev Bhattiprolu, Thiago Jung Bauermann,
    Vaibhav Jain, Vasyl Gomonovych"

    * tag 'powerpc-4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (199 commits)
    powerpc/mm/radix: Fix build error when RADIX_MMU=n
    macintosh/ams-input: Use true and false for boolean values
    macintosh: change some data types from int to bool
    powerpc/watchdog: Print the NIP in soft_nmi_interrupt()
    powerpc/watchdog: regs can't be null in soft_nmi_interrupt()
    powerpc/watchdog: Tweak watchdog printks
    powerpc/cell: Remove axonram driver
    rtc-opal: Fix handling of firmware error codes, prevent busy loops
    powerpc/mpc52xx_gpt: make use of raw_spinlock variants
    macintosh/adb: Properly mark continued kernel messages
    powerpc/pseries: Fix cpu hotplug crash with memoryless nodes
    powerpc/numa: Ensure nodes initialized for hotplug
    powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
    powerpc/kernel: Block interrupts when updating TIDR
    powerpc/powernv/idoa: Remove unnecessary pcidev from pci_dn
    powerpc/mm/nohash: do not flush the entire mm when range is a single page
    powerpc/pseries: Add Initialization of VF Bars
    powerpc/pseries/pci: Associate PEs to VFs in configure SR-IOV
    powerpc/eeh: Add EEH notify resume sysfs
    powerpc/eeh: Add EEH operations to notify resume
    ...

    Linus Torvalds
     

02 Feb, 2018

1 commit

  • Pull printk updates from Petr Mladek:

    - Add a console_msg_format command line option:

    The value "default" keeps the old "[time stamp] text\n" format. The
    value "syslog" allows to see the syslog-like "[timestamp] text" format.

    This feature was requested by people doing regression tests, for
    example, 0day robot. They want to have both filtered and full logs
    at hands.

    - Reduce the risk of softlockup:

    Pass the console owner in a busy loop.

    This is a new approach to the old problem. It was first proposed by
    Steven Rostedt on Kernel Summit 2017. It marks a context in which
    the console_lock owner calls console drivers and could not sleep.
    On the other side, printk() callers could detect this state and use
    a busy wait instead of a simple console_trylock(). Finally, the
    console_lock owner checks if there is a busy waiter at the end of
    the special context and eventually passes the console_lock to the
    waiter.

    The hand-off works surprisingly well and helps in many situations.
    Well, there is still a possibility of the softlockup, for example,
    when the flood of messages stops and the last owner still has too
    much to flush.

    There is increasing number of people having problems with
    printk-related softlockups. We might eventually need to get better
    solution. Anyway, this looks like a good start and promising
    direction.

    - Do not allow to schedule in console_unlock() called from printk():

    This reverts an older controversial commit. The reschedule helped
    to avoid softlockups. But it also slowed down the console output.
    This patch is obsoleted by the new console waiter logic described
    above. In fact, the reschedule made the hand-off less effective.

    - Deprecate "%pf" and "%pF" format specifier:

    It was needed on ia64, ppc64 and parisc64 to dereference function
    descriptors and show the real function address. It is done
    transparently by "%ps" and "pS" format specifier now.

    Sergey Senozhatsky found that all the function descriptors were in
    a special elf section and could be easily detected.

    - Remove printk_symbol() API:

    It has been obsoleted by "%pS" format specifier, and this change
    helped to remove few continuous lines and a less intuitive old API.

    - Remove redundant memsets:

    Sergey removed unnecessary memset when processing printk.devkmsg
    command line option.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (27 commits)
    printk: drop redundant devkmsg_log_str memsets
    printk: Never set console_may_schedule in console_trylock()
    printk: Hide console waiter logic into helpers
    printk: Add console owner and waiter logic to load balance console writes
    kallsyms: remove print_symbol() function
    checkpatch: add pF/pf deprecation warning
    symbol lookup: introduce dereference_symbol_descriptor()
    parisc64: Add .opd based function descriptor dereference
    powerpc64: Add .opd based function descriptor dereference
    ia64: Add .opd based function descriptor dereference
    sections: split dereference_function_descriptor()
    openrisc: Fix conflicting types for _exext and _stext
    lib: do not use print_symbol()
    irq debug: do not use print_symbol()
    sysfs: do not use print_symbol()
    drivers: do not use print_symbol()
    x86: do not use print_symbol()
    unicore32: do not use print_symbol()
    sh: do not use print_symbol()
    mn10300: do not use print_symbol()
    ...

    Linus Torvalds
     

01 Feb, 2018

2 commits

  • Pull documentation updates from Jonathan Corbet:
    "Documentation updates for 4.16.

    New stuff includes refcount_t documentation, errseq documentation,
    kernel-doc support for nested structure definitions, the removal of
    lots of crufty kernel-doc support for unused formats, SPDX tag
    documentation, the beginnings of a manual for subsystem maintainers,
    and lots of fixes and updates.

    As usual, some of the changesets reach outside of Documentation/ to
    effect kerneldoc comment fixes. It also adds the new LICENSES
    directory, of which Thomas promises I do not need to be the
    maintainer"

    * tag 'docs-4.16' of git://git.lwn.net/linux: (65 commits)
    linux-next: docs-rst: Fix typos in kfigure.py
    linux-next: DOC: HWPOISON: Fix path to debugfs in hwpoison.txt
    Documentation: Fix misconversion of #if
    docs: add index entry for networking/msg_zerocopy
    Documentation: security/credentials.rst: explain need to sort group_list
    LICENSES: Add MPL-1.1 license
    LICENSES: Add the GPL 1.0 license
    LICENSES: Add Linux syscall note exception
    LICENSES: Add the MIT license
    LICENSES: Add the BSD-3-clause "Clear" license
    LICENSES: Add the BSD 3-clause "New" or "Revised" License
    LICENSES: Add the BSD 2-clause "Simplified" license
    LICENSES: Add the LGPL-2.1 license
    LICENSES: Add the LGPL 2.0 license
    LICENSES: Add the GPL 2.0 license
    Documentation: Add license-rules.rst to describe how to properly identify file licenses
    scripts: kernel_doc: better handle show warnings logic
    fs/*/Kconfig: drop links to 404-compliant http://acl.bestbits.at
    doc: md: Fix a file name to md-fault.c in fault-injection.txt
    errseq: Add to documentation tree
    ...

    Linus Torvalds
     
  • Pull misc vfs updates from Al Viro:
    "All kinds of misc stuff, without any unifying topic, from various
    people.

    Neil's d_anon patch, several bugfixes, introduction of kvmalloc
    analogue of kmemdup_user(), extending bitfield.h to deal with
    fixed-endians, assorted cleanups all over the place..."

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (28 commits)
    alpha: osf_sys.c: use timespec64 where appropriate
    alpha: osf_sys.c: fix put_tv32 regression
    jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
    dcache: delete unused d_hash_mask
    dcache: subtract d_hash_shift from 32 in advance
    fs/buffer.c: fold init_buffer() into init_page_buffers()
    fs: fold __inode_permission() into inode_permission()
    fs: add RWF_APPEND
    sctp: use vmemdup_user() rather than badly open-coding memdup_user()
    snd_ctl_elem_init_enum_names(): switch to vmemdup_user()
    replace_user_tlv(): switch to vmemdup_user()
    new primitive: vmemdup_user()
    memdup_user(): switch to GFP_USER
    eventfd: fold eventfd_ctx_get() into eventfd_ctx_fileget()
    eventfd: fold eventfd_ctx_read() into eventfd_read()
    eventfd: convert to use anon_inode_getfd()
    nfs4file: get rid of pointless include of btrfs.h
    uvc_v4l2: clean copyin/copyout up
    vme_user: don't use __copy_..._user()
    usx2y: don't bother with memdup_user() for 16-byte structure
    ...

    Linus Torvalds
     

28 Jan, 2018

1 commit

  • The QS21/22 IBM Cell blades had a southbridge chip called Axon. This
    could have DDR DIMMs attached to it, though they were not directly
    usable as RAM, instead they could be used as some sort of buffer, if
    applications were written specifically to use the block device
    provided by the driver.

    Although the driver supposedly had direct access support, it was
    apparently never tested (see commit 91117a20245b ("axonram: Fix bug in
    direct_access")).

    These machines have not been available for over 5 years, and were
    never widely in use. It seems highly unlikely anyone is using this
    driver.

    In general we're happy to leave old drivers in the tree, but because
    DAX is involved this driver is caught up in the ongoing work in that
    area, but none of the DAX folks are able to test it.

    So remove the driver, if any one *is* using it, we'll be happy to put
    it back.

    Signed-off-by: Michael Ellerman

    Michael Ellerman
     

24 Jan, 2018

3 commits

  • Document NFS export design.
    Followup patches will implement this design.

    Signed-off-by: Amir Goldstein
    Signed-off-by: Miklos Szeredi

    Amir Goldstein
     
  • Introduce the "nfs_export" config, module and mount options.

    The NFS export feature depends on the "index" feature and enables two
    implicit overlayfs features: "index_all" and "verify_lower".
    The "index_all" feature creates an index on copy up of every file and
    directory. The "verify_lower" feature uses the full index to detect
    overlay filesystems inconsistencies on lookup, like redirect from
    multiple upper dirs to the same lower dir.

    NFS export can be enabled for non-upper mount with no index. However,
    because lower layer redirects cannot be verified with the index, enabling
    NFS export support on an overlay with no upper layer requires turning off
    redirect follow (e.g. "redirect_dir=nofollow").

    The full index may incur some overhead on mount time, especially when
    verifying that lower directory file handles are not stale.

    NFS export support, full index and consistency verification will be
    implemented by following patches.

    Signed-off-by: Amir Goldstein
    Signed-off-by: Miklos Szeredi

    Amir Goldstein
     
  • Document that inode index feature solves breaking hard links on
    copy up.

    Simplify Kconfig backward compatibility disclaimer.

    Signed-off-by: Amir Goldstein
    Signed-off-by: Miklos Szeredi

    Amir Goldstein
     

16 Jan, 2018

1 commit

  • No more print_symbol()/__print_symbol() users left, remove these
    symbols.

    It was a very old API that encouraged people use continuous lines.
    It had been obsoleted by %pS format specifier in a normal printk()
    call.

    Link: http://lkml.kernel.org/r/20180105102538.GC471@jagdpanzerIV
    Cc: Andrew Morton
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Mark Salter
    Cc: Tony Luck
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Guan Xuetao
    Cc: Borislav Petkov
    Cc: Greg Kroah-Hartman
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Vineet Gupta
    Cc: Fengguang Wu
    Cc: Steven Rostedt
    Cc: LKML
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: linux-ia64@vger.kernel.org
    Cc: linux-am33-list@redhat.com
    Cc: linux-sh@vger.kernel.org
    Cc: linux-edac@vger.kernel.org
    Cc: x86@kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Cc: Sergey Senozhatsky
    Signed-off-by: Sergey Senozhatsky
    Suggested-by: Joe Perches
    [pmladek@suse.com: updated commit message]
    Signed-off-by: Petr Mladek

    Sergey Senozhatsky
     

14 Jan, 2018

1 commit

  • The domain of NILFS project home was changed to "nilfs.sourceforge.io"
    to enable https access (the previous domain "nilfs.sourceforge.net" is
    redirected to the new one). Modify URLs of the project home to reflect
    this change and to replace their protocol from http to https.

    Link: http://lkml.kernel.org/r/1515416141-5614-1-git-send-email-konishi.ryusuke@lab.ntt.co.jp
    Signed-off-by: Ryusuke Konishi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ryusuke Konishi
     

12 Jan, 2018

2 commits


02 Jan, 2018

1 commit

  • This link is replicated in most filesystems' config stanzas. Referring
    to an archived version of that site is pointless as it mostly deals with
    patches; user documentation is available elsewhere.

    Signed-off-by: Adam Borowski
    CC: Alexander Viro
    Reviewed-by: Darrick J. Wong
    Acked-by: Jan Kara
    Acked-by: Dave Kleikamp
    Acked-by: David Sterba
    Acked-by: "Yan, Zheng"
    Acked-by: Chao Yu
    Acked-by: Jaegeuk Kim
    Acked-by: Steve French
    Signed-off-by: Jonathan Corbet

    Adam Borowski
     

26 Dec, 2017

1 commit

  • The original purpose of the per-superblock d_anon list was to
    keep disconnected dentries in the cache between consecutive
    requests to the NFS server. Dentries can be disconnected if
    a client holds a file open and repeatedly performs IO on it,
    and if the server drops the dentry, whether due to memory
    pressure, server restart, or "echo 3 > /proc/sys/vm/drop_caches".

    This purpose was thwarted by commit 75a6f82a0d10 ("freeing unlinked
    file indefinitely delayed") which caused disconnected dentries
    to be freed as soon as their refcount reached zero.

    This means that, when a dentry being used by nfsd gets disconnected, a
    new one needs to be allocated for every request (unless requests
    overlap). As the dentry has no name, no parent, and no children,
    there is little of value to cache. As small memory allocations are
    typically fast (from per-cpu free lists) this likely has little cost.

    This means that the original purpose of s_anon is no longer relevant:
    there is no longer any need to keep disconnected dentries on a list so
    they appear to be hashed.

    However, s_anon now has a new use. When you mount an NFS filesystem,
    the dentry stored in s_root is just a placebo. The "real" root dentry
    is allocated using d_obtain_root() and so it kept on the s_anon list.
    I don't know the reason for this, but suspect it related to NFSv4
    where a mount of "server:/some/path" require NFS to look up the root
    filehandle on the server, then walk down "/some" and "/path" to get
    the filehandle to mount.

    Whatever the reason, NFS depends on the s_anon list and on
    shrink_dcache_for_umount() pruning all dentries on this list. So we
    cannot simply remove s_anon.

    We could just leave the code unchanged, but apart from that being
    potentially confusing, the (unfair) bit-spin-lock which protects
    s_anon can become a bottle neck when lots of disconnected dentries are
    being created.

    So this patch renames s_anon to s_roots, and stops storing
    disconnected dentries on the list. Only dentries obtained with
    d_obtain_root() are now stored on this list. There are many fewer of
    these (only NFS and NILFS2 use the call, and only during filesystem
    mount) so contention on the bit-lock will not be a problem.

    Possibly an alternate solution should be found for NFS and NILFS2, but
    that would require understanding their needs first.

    Signed-off-by: NeilBrown
    Signed-off-by: Al Viro

    NeilBrown
     

22 Dec, 2017

1 commit

  • All non-historic operating systems support the full range of Unicode here,
    thus you can make filenames for example in Gothic (𐌼𐌴𐍉𐍅), the other Gothic
    (𝓂ℯℴ𝓌) or the third Gothic (𝗆𝖾𝗈𝗐), or declare something as 💩.

    Characters above U+FFFF are encoded on four bytes.

    Signed-off-by: Adam Borowski
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Jonathan Corbet

    Adam Borowski