23 Oct, 2015

4 commits

  • commit 98ce94c8df762d413b3ecb849e2b966b21606d04 upstream.

    Linux cifs mount with ntlmssp against an Mac OS X (Yosemite
    10.10.5) share fails in case the clocks differ more than +/-2h:

    digest-service: digest-request: od failed with 2 proto=ntlmv2
    digest-service: digest-request: kdc failed with -1561745592 proto=ntlmv2

    Fix this by (re-)using the given server timestamp for the
    ntlmv2 authentication (as Windows 7 does).

    A related problem was also reported earlier by Namjae Jaen (see below):

    Windows machine has extended security feature which refuse to allow
    authentication when there is time difference between server time and
    client time when ntlmv2 negotiation is used. This problem is prevalent
    in embedded enviornment where system time is set to default 1970.

    Modern servers send the server timestamp in the TargetInfo Av_Pair
    structure in the challenge message [see MS-NLMP 2.2.2.1]
    In [MS-NLMP 3.1.5.1.2] it is explicitly mentioned that the client must
    use the server provided timestamp if present OR current time if it is
    not

    Reported-by: Namjae Jeon
    Signed-off-by: Peter Seiderer
    Signed-off-by: Steve French
    Signed-off-by: Greg Kroah-Hartman

    Peter Seiderer
     
  • commit 646200a041203f440fb6fcf9cacd9efeda9de74c upstream.

    The error paths in set_file_size for cifs and smb3 are incorrect.

    In the unlikely event that a server did not support set file info
    of the file size, the code incorrectly falls back to trying SMBWriteX
    (note that only the original core SMB Write, used for example by DOS,
    can set the file size this way - this actually does not work for the more
    recent SMBWriteX). The idea was since the old DOS SMB Write could set
    the file size if you write zero bytes at that offset then use that if
    server rejects the normal set file info call.

    Fortunately the SMBWriteX will never be sent on the wire (except when
    file size is zero) since the length and offset fields were reversed
    in the two places in this function that call SMBWriteX causing
    the fall back path to return an error. It is also important to never call
    an SMB request from an SMB2/sMB3 session (which theoretically would
    be possible, and can cause a brief session drop, although the client
    recovers) so this should be fixed. In practice this path does not happen
    with modern servers but the error fall back to SMBWriteX is clearly wrong.

    Removing the calls to SMBWriteX in the error paths in cifs_set_file_size

    Pointed out by PaX/grsecurity team

    Signed-off-by: Steve French
    Reported-by: PaX Team
    CC: Emese Revfy
    CC: Brad Spengler
    Signed-off-by: Greg Kroah-Hartman

    Steve French
     
  • commit e0ddde9d44e37fbc21ce893553094ecf1a633ab5 upstream.

    leases (oplocks) were always requested for SMB2/SMB3 even when oplocks
    disabled in the cifs.ko module.

    Signed-off-by: Steve French
    Reviewed-by: Chandrika Srinivasan
    Signed-off-by: Greg Kroah-Hartman

    Steve French
     
  • commit ceb1b0b9b4d1089e9f2731a314689ae17784c861 upstream.

    Kerberos, which is very important for security, was only enabled for
    CIFS not SMB2/SMB3 mounts (e.g. vers=3.0)

    Patch based on the information detailed in
    http://thread.gmane.org/gmane.linux.kernel.cifs/10081/focus=10307
    to enable Kerberized SMB2/SMB3

    a) SMB2_negotiate: enable/use decode_negTokenInit in SMB2_negotiate
    b) SMB2_sess_setup: handle Kerberos sectype and replicate Kerberos
    SMB1 processing done in sess_auth_kerberos

    Signed-off-by: Noel Power
    Signed-off-by: Jim McDonough
    Signed-off-by: Steve French
    Signed-off-by: Greg Kroah-Hartman

    Steve French
     

30 Sep, 2015

1 commit

  • commit 4c17a6d56bb0cad3066a714e94f7185a24b40f49 upstream.

    This might lead to local privilege escalation (code execution as
    kernel) for systems where the following conditions are met:

    - CONFIG_CIFS_SMB2 and CONFIG_CIFS_POSIX are enabled
    - a cifs filesystem is mounted where:
    - the mount option "vers" was used and set to a value >=2.0
    - the attacker has write access to at least one file on the filesystem

    To attack this, an attacker would have to guess the target_tcon
    pointer (but guessing wrong doesn't cause a crash, it just returns an
    error code) and win a narrow race.

    Signed-off-by: Jann Horn
    Signed-off-by: Steve French
    Signed-off-by: Greg Kroah-Hartman

    Jann Horn
     

22 Sep, 2015

1 commit

  • commit a068acf2ee77693e0bf39d6e07139ba704f461c3 upstream.

    Many file systems that implement the show_options hook fail to correctly
    escape their output which could lead to unescaped characters (e.g. new
    lines) leaking into /proc/mounts and /proc/[pid]/mountinfo files. This
    could lead to confusion, spoofed entries (resulting in things like
    systemd issuing false d-bus "mount" notifications), and who knows what
    else. This looks like it would only be the root user stepping on
    themselves, but it's possible weird things could happen in containers or
    in other situations with delegated mount privileges.

    Here's an example using overlay with setuid fusermount trusting the
    contents of /proc/mounts (via the /etc/mtab symlink). Imagine the use
    of "sudo" is something more sneaky:

    $ BASE="ovl"
    $ MNT="$BASE/mnt"
    $ LOW="$BASE/lower"
    $ UP="$BASE/upper"
    $ WORK="$BASE/work/ 0 0
    none /proc fuse.pwn user_id=1000"
    $ mkdir -p "$LOW" "$UP" "$WORK"
    $ sudo mount -t overlay -o "lowerdir=$LOW,upperdir=$UP,workdir=$WORK" none /mnt
    $ cat /proc/mounts
    none /root/ovl/mnt overlay rw,relatime,lowerdir=ovl/lower,upperdir=ovl/upper,workdir=ovl/work/ 0 0
    none /proc fuse.pwn user_id=1000 0 0
    $ fusermount -u /proc
    $ cat /proc/mounts
    cat: /proc/mounts: No such file or directory

    This fixes the problem by adding new seq_show_option and
    seq_show_option_n helpers, and updating the vulnerable show_option
    handlers to use them as needed. Some, like SELinux, need to be open
    coded due to unusual existing escape mechanisms.

    [akpm@linux-foundation.org: add lost chunk, per Kees]
    [keescook@chromium.org: seq_show_option should be using const parameters]
    Signed-off-by: Kees Cook
    Acked-by: Serge Hallyn
    Acked-by: Jan Kara
    Acked-by: Paul Moore
    Cc: J. R. Okajima
    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     

21 May, 2015

5 commits

  • This patch fixes a race condition that occurs when connecting
    to a NT 3.51 host without specifying a NetBIOS name.
    In that case a RFC1002_NEGATIVE_SESSION_RESPONSE is received
    and the SMB negotiation is reattempted, but under some conditions
    it leads SendReceive() to hang forever while waiting for srv_mutex.
    This, in turn, sets the calling process to an uninterruptible sleep
    state and makes it unkillable.

    The solution is to unlock the srv_mutex acquired in the demux
    thread *before* going to sleep (after the reconnect error) and
    before reattempting the connection.

    Federico Sauter
     
  • Garbled characters happen by using surrogate pair for filename.
    (replace each 1 character to ??)

    [Steps to Reproduce for bug]
    client# touch $(echo -e '\xf0\x9d\x9f\xa3')
    client# touch $(echo -e '\xf0\x9d\x9f\xa4')
    client# ls -li
    You see same inode number, same filename(=?? and ??) .

    Fix the bug about these functions do not consider about surrogate pair (and IVS).
    cifs_utf16_bytes()
    cifs_mapchar()
    cifs_from_utf16()
    cifsConvertToUTF16()

    Reported-by: Nakajima Akira
    Signed-off-by: Nakajima Akira
    Signed-off-by: Steve French

    Nakajima Akira
     
  • posix_lock_file_wait may fail under certain circumstances, and its result is
    usually checked/returned. But given the complexity of cifs, I'm not sure if
    the result is intentially left unchecked and always expected to succeed.

    Signed-off-by: Chengyu Song
    Acked-by: Jeff Layton
    Signed-off-by: Steve French

    Chengyu Song
     
  • When you refer file directly on cifs client,
    (e.g. ls -li , cd , stat )
    the function return old inode number and filetype from old inode cache,
    though server has different inode number or filetype.

    When server is Windows, cifs client has same problem.
    When Server is Windows
    , This patch fixes bug in different filetype,
    but does not fix bug in different inode number.
    Because QUERY_PATH_INFO response by Windows does not include inode number(Index Number) .

    BUG INFO
    https://bugzilla.kernel.org/show_bug.cgi?id=90021
    https://bugzilla.kernel.org/show_bug.cgi?id=90031

    Reported-by: Nakajima Akira
    Signed-off-by: Nakajima Akira
    Reviewed-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Nakajima Akira
     
  • Smatch complains because we dereference "ses->server" without checking
    some lines earlier inside the call to get_next_mid(ses->server).

    fs/cifs/cifssmb.c:4921 CIFSGetDFSRefer()
    warn: variable dereferenced before check 'ses->server' (see line 4899)

    There is only one caller for this function get_dfs_path() and it always
    passes a non-null "ses->server" pointer so this NULL check can be
    removed.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Steve French

    Dan Carpenter
     

20 May, 2015

1 commit


11 May, 2015

2 commits

  • Cifs client has problem with reserved chars filename.

    [BUG1] : several functions handle incorrect value of mapchars
    - cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
    + cifs_remap(cifs_sb));

    [BUG2] : forget to convert reserved chars when creating SymbolicLink.
    - CIFSUnixCreateSymLink() calls cifs_strtoUTF16
    + CIFSUnixCreateSymLink() calls cifsConvertToUTF16() with remap

    [BUG3] : forget to convert reserved chars when getting SymbolicLink.
    - CIFSSMBUnixQuerySymLink() calls cifs_strtoUTF16
    + CIFSSMBUnixQuerySymLink() calls cifsConvertToUTF16() with remap

    [BUG4] : /proc/mounts don't show "mapposix" when using mapposix mount option
    + cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SFM_CHR)
    + seq_puts(s, ",mapposix");

    Reported-by: t.wede@kw-reneg.de
    Reported-by: Nakajima Akira
    Signed-off-by: Nakajima Akira
    Signed-off-by: Carl Schaefer
    Signed-off-by: Steve French

    Nakajima Akira
     
  • Doing a readdir on a dfs root can result in the dentries for directories
    with a dfs share mounted being replaced by new dentries for objects
    returned by the readdir call. These new dentries on shares mounted with
    unix extenstions show up as symlinks pointing to the dfs share.

    # mount -t cifs -o sec=none //vm140-31/dfsroot cifs
    # stat cifs/testlink/testfile; ls -l cifs
    File: ‘cifs/testlink/testfile’
    Size: 0 Blocks: 0 IO Block: 16384 regular
    empty file
    Device: 27h/39d Inode: 130120 Links: 1
    Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
    Access: 2015-03-31 13:55:50.106018200 +0100
    Modify: 2015-03-31 13:55:50.106018200 +0100
    Change: 2015-03-31 13:55:50.106018200 +0100
    Birth: -
    total 0
    drwxr-xr-x 2 root root 0 Mar 31 13:54 testdir
    lrwxrwxrwx 1 root root 19 Mar 24 14:25 testlink -> \vm140-31\test

    In the example above, the stat command mounts the dfs share at
    cifs/testlink. The subsequent ls on the dfsroot directory replaces the
    dentry for testlink with a symlink.

    In the earlier code, the d_invalidate command returned an -EBUSY error
    when attempting to invalidate directories. This stopped the code from
    replacing the directories with symlinks returned by the readdir call.
    Changes were recently made to the d_invalidate() command so
    that it no longer returns an error code. This results in the directory
    with the mounted dfs share being replaced by a symlink which denotes a
    dfs share.

    Signed-off-by: Sachin Prabhu
    Reviewed-by: Jeff Layton
    Signed-off-by: Steve French

    Sachin Prabhu
     

27 Apr, 2015

1 commit

  • Pull fourth vfs update from Al Viro:
    "d_inode() annotations from David Howells (sat in for-next since before
    the beginning of merge window) + four assorted fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    RCU pathwalk breakage when running into a symlink overmounting something
    fix I_DIO_WAKEUP definition
    direct-io: only inc/dec inode->i_dio_count for file systems
    fs/9p: fix readdir()
    VFS: assorted d_backing_inode() annotations
    VFS: fs/inode.c helpers: d_inode() annotations
    VFS: fs/cachefiles: d_backing_inode() annotations
    VFS: fs library helpers: d_inode() annotations
    VFS: assorted weird filesystems: d_inode() annotations
    VFS: normal filesystems (and lustre): d_inode() annotations
    VFS: security/: d_inode() annotations
    VFS: security/: d_backing_inode() annotations
    VFS: net/: d_inode() annotations
    VFS: net/unix: d_backing_inode() annotations
    VFS: kernel/: d_inode() annotations
    VFS: audit: d_backing_inode() annotations
    VFS: Fix up some ->d_inode accesses in the chelsio driver
    VFS: Cachefiles should perform fs modifications on the top layer only
    VFS: AF_UNIX sockets should call mknod on the top layer only

    Linus Torvalds
     

17 Apr, 2015

1 commit

  • Pull third hunk of vfs changes from Al Viro:
    "This contains the ->direct_IO() changes from Omar + saner
    generic_write_checks() + dealing with fcntl()/{read,write}() races
    (mirroring O_APPEND/O_DIRECT into iocb->ki_flags and instead of
    repeatedly looking at ->f_flags, which can be changed by fcntl(2),
    check ->ki_flags - which cannot) + infrastructure bits for dhowells'
    d_inode annotations + Christophs switch of /dev/loop to
    vfs_iter_write()"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (30 commits)
    block: loop: switch to VFS ITER_BVEC
    configfs: Fix inconsistent use of file_inode() vs file->f_path.dentry->d_inode
    VFS: Make pathwalk use d_is_reg() rather than S_ISREG()
    VFS: Fix up debugfs to use d_is_dir() in place of S_ISDIR()
    VFS: Combine inode checks with d_is_negative() and d_is_positive() in pathwalk
    NFS: Don't use d_inode as a variable name
    VFS: Impose ordering on accesses of d_inode and d_flags
    VFS: Add owner-filesystem positive/negative dentry checks
    nfs: generic_write_checks() shouldn't be done on swapout...
    ocfs2: use __generic_file_write_iter()
    mirror O_APPEND and O_DIRECT into iocb->ki_flags
    switch generic_write_checks() to iocb and iter
    ocfs2: move generic_write_checks() before the alignment checks
    ocfs2_file_write_iter: stop messing with ppos
    udf_file_write_iter: reorder and simplify
    fuse: ->direct_IO() doesn't need generic_write_checks()
    ext4_file_write_iter: move generic_write_checks() up
    xfs_file_aio_write_checks: switch to iocb/iov_iter
    generic_write_checks(): drop isblk argument
    blkdev_write_iter: expand generic_file_checks() call in there
    ...

    Linus Torvalds
     

16 Apr, 2015

2 commits

  • Pull second vfs update from Al Viro:
    "Now that net-next went in... Here's the next big chunk - killing
    ->aio_read() and ->aio_write().

    There'll be one more pile today (direct_IO changes and
    generic_write_checks() cleanups/fixes), but I'd prefer to keep that
    one separate"

    * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (37 commits)
    ->aio_read and ->aio_write removed
    pcm: another weird API abuse
    infinibad: weird APIs switched to ->write_iter()
    kill do_sync_read/do_sync_write
    fuse: use iov_iter_get_pages() for non-splice path
    fuse: switch to ->read_iter/->write_iter
    switch drivers/char/mem.c to ->read_iter/->write_iter
    make new_sync_{read,write}() static
    coredump: accept any write method
    switch /dev/loop to vfs_iter_write()
    serial2002: switch to __vfs_read/__vfs_write
    ashmem: use __vfs_read()
    export __vfs_read()
    autofs: switch to __vfs_write()
    new helper: __vfs_write()
    switch hugetlbfs to ->read_iter()
    coda: switch to ->read_iter/->write_iter
    ncpfs: switch to ->read_iter/->write_iter
    net/9p: remove (now-)unused helpers
    p9_client_attach(): set fid->uid correctly
    ...

    Linus Torvalds
     
  • that's the bulk of filesystem drivers dealing with inodes of their own

    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     

15 Apr, 2015

1 commit

  • Allocating a large number of elements in atomic context could quickly
    deplete memory reserves, so just disallow atomic resizing entirely.

    Nothing currently uses mempool_resize() with anything other than
    GFP_KERNEL, so convert existing callers to drop the gfp_mask.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: David Rientjes
    Acked-by: Steffen Maier [zfcp]
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Steve French
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

12 Apr, 2015

6 commits


01 Apr, 2015

8 commits

  • Coverity reports a warning due to unitialized attr structure in one
    code path.

    Reported by Coverity (CID 728535)

    Signed-off-by: Steve French
    Reviewed-by: Jeff Layton

    Steve French
     
  • null tcon is not possible in these paths so
    remove confusing null check

    Reported by Coverity (CID 728519)

    Signed-off-by: Steve French
    Reviewed-by: Jeff Layton

    Steve French
     
  • remove impossible check

    Pointed out by Coverity (CID 115422)

    Signed-off-by: Steve French
    Reviewed-by: Jeff Layton

    Steve French
     
  • workstation_RFC1001_name is part of the struct and can't be null,
    remove impossible comparison (array vs. null)

    Pointed out by Coverity (CID 140095)

    Signed-off-by: Steve French
    Reviewed-by: Jeff Layton

    Steve French
     
  • Coverity reports a warning for referencing the beginning of the
    SMB2/SMB3 frame using the ProtocolId field as an array. Although
    it works the same either way, this patch should quiet the warning
    and might be a little clearer.

    Reported by Coverity (CID 741269)

    Signed-off-by: Steve French
    Acked-by: Shirish Pargaonkar
    Acked-by: Sachin Prabhu
    Reviewed-by: Jeff Layton

    Steve French
     
  • null tcon is not likely in these paths in current
    code, but obviously it does clarify the code to
    check for null (if at all) before derefrencing
    rather than after.

    Reported by Coverity (CID 1042666)

    Signed-off-by: Steve French
    Acked-by: Shirish Pargaonkar
    Acked-by: Sachin Prabhu

    Steve French
     
  • Although unlikely to fail (and tree connect does not commonly send
    a password since SECMODE_USER is the default for most servers)
    do not ignore errors on SMBNTEncrypt in SMB Tree Connect.

    Reported by Coverity (CID 1226853)

    Signed-off-by: Steve French
    Acked-by: Shirish Pargaonkar
    Acked-by: Sachin Prabhu
    Reviewed-by: Jeff Layton

    Steve French
     
  • Pointed out by coverity analyzer. resp_buftype is
    not initialized in one path which can rarely log
    a spurious warning (buf is null so there will
    not be a problem with freeing data, but if buf_type
    were randomly set to wrong value could log a warning)

    Reported by Coverity (CID 1269144)

    Signed-off-by: Steve French
    Acked-by: Shirish Pargaonkar
    Acked-by: Sachin Prabhu
    Reviewed-by: Jeff Layton

    Steve French
     

22 Mar, 2015

1 commit

  • For example, when mount opt is redundently specified
    (e.g., "user=A,user=B,user=C"), kernel kept allocating new key/val
    with kstrdup() and overwrite previous ptr (to be freed).

    Althouhg mount.cifs in userspace performs a bit of sanitization
    (e.g., forcing one user option), current implementation is not
    robust. Other options such as iocharset and domainanme are similarly
    vulnerable.

    Signed-off-by: Taesoo Kim
    Signed-off-by: Steve French

    Taesoo Kim
     

21 Mar, 2015

2 commits

  • Under intermittent network outages, find_writable_file() is susceptible
    to the following race condition, which results in a user-after-free in
    the cifs_writepages code-path:

    Thread 1 Thread 2
    ======== ========

    inv_file = NULL
    refind = 0
    spin_lock(&cifs_file_list_lock)

    // invalidHandle found on openFileList

    inv_file = open_file
    // inv_file->count currently 1

    cifsFileInfo_get(inv_file)
    // inv_file->count = 2

    spin_unlock(&cifs_file_list_lock);

    cifs_reopen_file() cifs_close()
    // fails (rc != 0) ->cifsFileInfo_put()
    spin_lock(&cifs_file_list_lock)
    // inv_file->count = 1
    spin_unlock(&cifs_file_list_lock)

    spin_lock(&cifs_file_list_lock);
    list_move_tail(&inv_file->flist,
    &cifs_inode->openFileList);
    spin_unlock(&cifs_file_list_lock);

    cifsFileInfo_put(inv_file);
    ->spin_lock(&cifs_file_list_lock)

    // inv_file->count = 0
    list_del(&cifs_file->flist);
    // cleanup!!
    kfree(cifs_file);

    spin_unlock(&cifs_file_list_lock);

    spin_lock(&cifs_file_list_lock);
    ++refind;
    // refind = 1
    goto refind_writable;

    At this point we loop back through with an invalid inv_file pointer
    and a refind value of 1. On second pass, inv_file is not overwritten on
    openFileList traversal, and is subsequently dereferenced.

    Signed-off-by: David Disseldorp
    Reviewed-by: Jeff Layton
    CC:
    Signed-off-by: Steve French

    David Disseldorp
     
  • While attempting to clone a file on a samba server, we receive a
    STATUS_INVALID_DEVICE_REQUEST. This is mapped to -EOPNOTSUPP which
    isn't handled in smb2_clone_range(). We end up looping in the while loop
    making same call to the samba server over and over again.

    The proposed fix is to exit and return the error value when encountered
    with an unhandled error.

    Cc:
    Signed-off-by: Sachin Prabhu
    Signed-off-by: Steve French
    Signed-off-by: Steve French

    Sachin Prabhu
     

17 Feb, 2015

1 commit


13 Feb, 2015

1 commit

  • Pull backing device changes from Jens Axboe:
    "This contains a cleanup of how the backing device is handled, in
    preparation for a rework of the life time rules. In this part, the
    most important change is to split the unrelated nommu mmap flags from
    it, but also removing a backing_dev_info pointer from the
    address_space (and inode), and a cleanup of other various minor bits.

    Christoph did all the work here, I just fixed an oops with pages that
    have a swap backing. Arnd fixed a missing export, and Oleg killed the
    lustre backing_dev_info from staging. Last patch was from Al,
    unexporting parts that are now no longer needed outside"

    * 'for-3.20/bdi' of git://git.kernel.dk/linux-block:
    Make super_blocks and sb_lock static
    mtd: export new mtd_mmap_capabilities
    fs: make inode_to_bdi() handle NULL inode
    staging/lustre/llite: get rid of backing_dev_info
    fs: remove default_backing_dev_info
    fs: don't reassign dirty inodes to default_backing_dev_info
    nfs: don't call bdi_unregister
    ceph: remove call to bdi_unregister
    fs: remove mapping->backing_dev_info
    fs: export inode_to_bdi and use it in favor of mapping->backing_dev_info
    nilfs2: set up s_bdi like the generic mount_bdev code
    block_dev: get bdev inode bdi directly from the block device
    block_dev: only write bdev inode on close
    fs: introduce f_op->mmap_capabilities for nommu mmap support
    fs: kill BDI_CAP_SWAP_BACKED
    fs: deduplicate noop_backing_dev_info

    Linus Torvalds
     

11 Feb, 2015

2 commits

  • Merge misc updates from Andrew Morton:
    "Bite-sized chunks this time, to avoid the MTA ratelimiting woes.

    - fs/notify updates

    - ocfs2

    - some of MM"

    That laconic "some MM" is mainly the removal of remap_file_pages(),
    which is a big simplification of the VM, and which gets rid of a *lot*
    of random cruft and special cases because we no longer support the
    non-linear mappings that it used.

    From a user interface perspective, nothing has changed, because the
    remap_file_pages() syscall still exists, it's just done by emulating the
    old behavior by creating a lot of individual small mappings instead of
    one non-linear one.

    The emulation is slower than the old "native" non-linear mappings, but
    nobody really uses or cares about remap_file_pages(), and simplifying
    the VM is a big advantage.

    * emailed patches from Andrew Morton : (78 commits)
    memcg: zap memcg_slab_caches and memcg_slab_mutex
    memcg: zap memcg_name argument of memcg_create_kmem_cache
    memcg: zap __memcg_{charge,uncharge}_slab
    mm/page_alloc.c: place zone_id check before VM_BUG_ON_PAGE check
    mm: hugetlb: fix type of hugetlb_treat_as_movable variable
    mm, hugetlb: remove unnecessary lower bound on sysctl handlers"?
    mm: memory: merge shared-writable dirtying branches in do_wp_page()
    mm: memory: remove ->vm_file check on shared writable vmas
    xtensa: drop _PAGE_FILE and pte_file()-related helpers
    x86: drop _PAGE_FILE and pte_file()-related helpers
    unicore32: drop pte_file()-related helpers
    um: drop _PAGE_FILE and pte_file()-related helpers
    tile: drop pte_file()-related helpers
    sparc: drop pte_file()-related helpers
    sh: drop _PAGE_FILE and pte_file()-related helpers
    score: drop _PAGE_FILE and pte_file()-related helpers
    s390: drop pte_file()-related helpers
    parisc: drop _PAGE_FILE and pte_file()-related helpers
    openrisc: drop _PAGE_FILE and pte_file()-related helpers
    nios2: drop _PAGE_FILE and pte_file()-related helpers
    ...

    Linus Torvalds
     
  • Pull file locking related changes #1 from Jeff Layton:
    "This patchset contains a fairly major overhaul of how file locks are
    tracked within the inode. Rather than a single list, we now create a
    per-inode "lock context" that contains individual lists for the file
    locks, and a new dedicated spinlock for them.

    There are changes in other trees that are based on top of this set so
    it may be easiest to pull this in early"

    * tag 'locks-v3.20-1' of git://git.samba.org/jlayton/linux:
    locks: update comments that refer to inode->i_flock
    locks: consolidate NULL i_flctx checks in locks_remove_file
    locks: keep a count of locks on the flctx lists
    locks: clean up the lm_change prototype
    locks: add a dedicated spinlock to protect i_flctx lists
    locks: remove i_flock field from struct inode
    locks: convert lease handling to file_lock_context
    locks: convert posix locks to file_lock_context
    locks: move flock locks to file_lock_context
    ceph: move spinlocking into ceph_encode_locks_to_buffer and ceph_count_locks
    locks: add a new struct file_locking_context pointer to struct inode
    locks: have locks_release_file use flock_lock_file to release generic flock locks
    locks: add new struct list_head to struct file_lock

    Linus Torvalds