17 Nov, 2013

4 commits

  • Pull CIFS fixes from Steve French:
    "A set of cifs fixes most important of which is Pavel's fix for some
    problems with handling Windows reparse points and also the security
    fix for setfacl over a cifs mount to Samba removing part of the ACL.
    Both of these fixes are for stable as well.

    Also added most of copychunk (copy offload) support to cifs although I
    expect a final patch in that series (to fix handling of larger files)
    in a few days (had to hold off on that in order to incorporate some
    additional code review feedback).

    Also added support for O_DIRECT on forcedirectio mounts (needed in
    order to run some of the server benchmarks over cifs and smb2/smb3
    mounts)"

    * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
    [CIFS] Warn if SMB3 encryption required by server
    setfacl removes part of ACL when setting POSIX ACLs to Samba
    [CIFS] Set copychunk defaults
    CIFS: SMB2/SMB3 Copy offload support (refcopy) phase 1
    cifs: Use data structures to compute NTLMv2 response offsets
    [CIFS] O_DIRECT opens should work on directio mounts
    cifs: don't spam the logs on unexpected lookup errors
    cifs: change ERRnomem error mapping from ENOMEM to EREMOTEIO
    CIFS: Fix symbolic links usage

    Linus Torvalds
     
  • Pull NFS client bugfixes:
    - Stable fix for data corruption when retransmitting O_DIRECT writes
    - Stable fix for a deep recursion/stack overflow bug in rpc_release_client
    - Stable fix for infinite looping when mounting a NFSv4.x volume
    - Fix a typo in the nfs mount option parser
    - Allow pNFS layouts to be compiled into the kernel when NFSv4.1 is

    * tag 'nfs-for-3.13-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    nfs: fix pnfs Kconfig defaults
    NFS: correctly report misuse of "migration" mount option.
    nfs: don't retry detect_trunking with RPC_AUTH_UNIX more than once
    SUNRPC: Avoid deep recursion in rpc_release_client
    SUNRPC: Fix a data corruption issue when retransmitting RPC calls

    Linus Torvalds
     
  • Pull nfsd changes from Bruce Fields:
    "This includes miscellaneous bugfixes and cleanup and a performance fix
    for write-heavy NFSv4 workloads.

    (The most significant nfsd-relevant change this time is actually in
    the delegation patches that went through Viro, fixing a long-standing
    bug that can cause NFSv4 clients to miss updates made by non-nfs users
    of the filesystem. Those enable some followup nfsd patches which I
    have queued locally, but those can wait till 3.14)"

    * 'nfsd-next' of git://linux-nfs.org/~bfields/linux: (24 commits)
    nfsd: export proper maximum file size to the client
    nfsd4: improve write performance with better sendspace reservations
    svcrpc: remove an unnecessary assignment
    sunrpc: comment typo fix
    Revert "nfsd: remove_stid can be incorporated into nfs4_put_delegation"
    nfsd4: fix discarded security labels on setattr
    NFSD: Add support for NFS v4.2 operation checking
    nfsd4: nfsd_shutdown_net needs state lock
    NFSD: Combine decode operations for v4 and v4.1
    nfsd: -EINVAL on invalid anonuid/gid instead of silent failure
    nfsd: return better errors to exportfs
    nfsd: fh_update should error out in unexpected cases
    nfsd4: need to destroy revoked delegations in destroy_client
    nfsd: no need to unhash_stid before free
    nfsd: remove_stid can be incorporated into nfs4_put_delegation
    nfsd: nfs4_open_delegation needs to remove_stid rather than unhash_stid
    nfsd: nfs4_free_stid
    nfsd: fix Kconfig syntax
    sunrpc: trim off EC bytes in GSSAPI v2 unwrap
    gss_krb5: document that we ignore sequence number
    ...

    Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "This pull fixes the empty_zero_page bug that Heiko reported, and
    includes one more cleanup from Al Viro"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    btrfs: get rid of fdentry()
    btrfs: fix empty_zero_page misusage

    Linus Torvalds
     

16 Nov, 2013

6 commits

  • We do not support SMB3 encryption yet, warn if server responds
    that SMB3 encryption is mandatory.

    Signed-off-by: Steve French

    Steve French
     
  • setfacl over cifs mounts can remove the default ACL when setting the
    (non-default part of) the ACL and vice versa (we were leaving at 0
    rather than setting to -1 the count field for the unaffected
    half of the ACL. For example notice the setfacl removed
    the default ACL in this sequence:

    steven@steven-GA-970A-DS3:~/cifs-2.6$ getfacl /mnt/test-dir ; setfacl
    -m default:user:test:rwx,user:test:rwx /mnt/test-dir
    getfacl: Removing leading '/' from absolute path names
    user::rwx
    group::r-x
    other::r-x
    default:user::rwx
    default:user:test:rwx
    default:group::r-x
    default:mask::rwx
    default:other::r-x

    steven@steven-GA-970A-DS3:~/cifs-2.6$ getfacl /mnt/test-dir
    getfacl: Removing leading '/' from absolute path names
    user::rwx
    user:test:rwx
    group::r-x
    mask::rwx
    other::r-x

    CC: Stable
    Signed-off-by: Steve French
    Acked-by: Jeremy Allison

    Steve French
     
  • Pull trivial tree updates from Jiri Kosina:
    "Usual earth-shaking, news-breaking, rocket science pile from
    trivial.git"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (23 commits)
    doc: usb: Fix typo in Documentation/usb/gadget_configs.txt
    doc: add missing files to timers/00-INDEX
    timekeeping: Fix some trivial typos in comments
    mm: Fix some trivial typos in comments
    irq: Fix some trivial typos in comments
    NUMA: fix typos in Kconfig help text
    mm: update 00-INDEX
    doc: Documentation/DMA-attributes.txt fix typo
    DRM: comment: `halve' -> `half'
    Docs: Kconfig: `devlopers' -> `developers'
    doc: typo on word accounting in kprobes.c in mutliple architectures
    treewide: fix "usefull" typo
    treewide: fix "distingush" typo
    mm/Kconfig: Grammar s/an/a/
    kexec: Typo s/the/then/
    Documentation/kvm: Update cpuid documentation for steal time and pv eoi
    treewide: Fix common typo in "identify"
    __page_to_pfn: Fix typo in comment
    Correct some typos for word frequency
    clk: fixed-factor: Fix a trivial typo
    ...

    Linus Torvalds
     
  • Patch 2 of the copy chunk series (the final patch will
    use these to handle copies of files larger than the chunk size.

    We set the same defaults that Windows and Samba expect for
    CopyChunk.

    Signed-off-by: Steve French
    Reviewed-by: David Disseldorp

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

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

    Christoph Hellwig
     
  • The current test on valid use of the "migration" mount option can never
    report an error as it will only do so if
    mnt->version !=4 && mnt->minor_version != 0
    (and some other condition), but if that test would succeed, then the previous
    test has already gone-to out_minorversion_mismatch.

    So change the && to an || to get correct semantics.

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

    NeilBrown
     

15 Nov, 2013

12 commits

  • 3 of 4 callers actually want file_inode()...

    Signed-off-by: Al Viro
    Signed-off-by: Chris Mason

    Al Viro
     
  • Heiko Carstens noticed that btrfs was using empty_zero_page
    incorrectly. He explained:

    The definition of empty_zero_page is architecture specific. It
    is (currently) either a character array, an unsigned long
    containing the address of the empty_zero_page, or even worse
    only the address of the struct page belonging to the
    empty_zero_page.

    This commit changes btrfs to use a for-loop instead. On x86
    the resulting .ko is smaller, and we're no longer worrying about
    how each arch builds its zeros.

    Reported-by: Heiko Carstens
    Signed-off-by: Chris Mason

    Chris Mason
     
  • Merge patches from Andrew Morton:
    - memstick fixes

    - the rest of MM

    - various misc bits that were awaiting merges from linux-next into
    mainline: seq_file, printk, rtc, completions, w1, softirqs, llist,
    kfifo, hfsplus

    * emailed patches from Andrew Morton : (72 commits)
    cmdline-parser: fix build
    hfsplus: Fix undefined __divdi3 in hfsplus_init_header_node()
    kfifo API type safety
    kfifo: kfifo_copy_{to,from}_user: fix copied bytes calculation
    sound/core/memalloc.c: use gen_pool_dma_alloc() to allocate iram buffer
    llists-move-llist_reverse_order-from-raid5-to-llistc-fix
    llists: move llist_reverse_order from raid5 to llist.c
    kernel: fix generic_exec_single indentation
    kernel-provide-a-__smp_call_function_single-stub-for-config_smp-fix
    kernel: provide a __smp_call_function_single stub for !CONFIG_SMP
    kernel: remove CONFIG_USE_GENERIC_SMP_HELPERS
    revert "softirq: Add support for triggering softirq work on softirqs"
    drivers/w1/masters/w1-gpio.c: use dev_get_platdata()
    sched: remove INIT_COMPLETION
    tree-wide: use reinit_completion instead of INIT_COMPLETION
    sched: replace INIT_COMPLETION with reinit_completion
    drivers/rtc/rtc-hid-sensor-time.c: enable HID input processing early
    drivers/rtc/rtc-hid-sensor-time.c: use dev_get_platdata()
    vsprintf: ignore %n again
    seq_file: remove "%n" usage from seq_file users
    ...

    Linus Torvalds
     
  • ERROR: "__divdi3" [fs/hfsplus/hfsplus.ko] undefined!

    Introduced by commit 099e9245e04d ("hfsplus: implement attributes file's
    header node initialization code").

    i_size_read() returns loff_t, which is long long, i.e. 64-bit. node_size
    is size_t, which is either 32-bit or 64-bit. Hence
    "i_size_read(attr_file) / node_size" is a 64-by-32 or 64-by-64 division,
    causing (some versions of) gcc to emit a call to __divdi3().

    Fortunately node_size is actually 16-bit, as the sole caller of
    hfsplus_init_header_node() passes a u16. Hence change its type from
    size_t to u16, and use do_div() to perform a 64-by-32 division.

    Not seen in m68k/allmodconfig in -next, so it really depends on the
    verion of gcc.

    Signed-off-by: Geert Uytterhoeven
    Cc: Vyacheslav Dubeyko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Use this new function to make code more comprehensible, since we are
    reinitialzing the completion, not initializing.

    [akpm@linux-foundation.org: linux-next resyncs]
    Signed-off-by: Wolfram Sang
    Acked-by: Linus Walleij (personally at LCE13)
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wolfram Sang
     
  • All seq_printf() users are using "%n" for calculating padding size,
    convert them to use seq_setwidth() / seq_pad() pair.

    Signed-off-by: Tetsuo Handa
    Signed-off-by: Kees Cook
    Cc: Joe Perches
    Cc: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tetsuo Handa
     
  • There are several users who want to know bytes written by seq_*() for
    alignment purpose. Currently they are using %n format for knowing it
    because seq_*() returns 0 on success.

    This patch introduces seq_setwidth() and seq_pad() for allowing them to
    align without using %n format.

    Signed-off-by: Tetsuo Handa
    Signed-off-by: Kees Cook
    Cc: Joe Perches
    Cc: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tetsuo Handa
     
  • Hugetlb supports multiple page sizes. We use split lock only for PMD
    level, but not for PUD.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Naoya Horiguchi
    Signed-off-by: Kirill A. Shutemov
    Tested-by: Alex Thorlton
    Cc: Ingo Molnar
    Cc: "Eric W . Biederman"
    Cc: "Paul E . McKenney"
    Cc: Al Viro
    Cc: Andi Kleen
    Cc: Andrea Arcangeli
    Cc: Dave Hansen
    Cc: Dave Jones
    Cc: David Howells
    Cc: Frederic Weisbecker
    Cc: Johannes Weiner
    Cc: Kees Cook
    Cc: Mel Gorman
    Cc: Michael Kerrisk
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Robin Holt
    Cc: Sedat Dilek
    Cc: Srikar Dronamraju
    Cc: Thomas Gleixner
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • With split ptlock it's important to know which lock
    pmd_trans_huge_lock() took. This patch adds one more parameter to the
    function to return the lock.

    In most places migration to new api is trivial. Exception is
    move_huge_pmd(): we need to take two locks if pmd tables are different.

    Signed-off-by: Naoya Horiguchi
    Signed-off-by: Kirill A. Shutemov
    Tested-by: Alex Thorlton
    Cc: Ingo Molnar
    Cc: "Eric W . Biederman"
    Cc: "Paul E . McKenney"
    Cc: Al Viro
    Cc: Andi Kleen
    Cc: Andrea Arcangeli
    Cc: Dave Hansen
    Cc: Dave Jones
    Cc: David Howells
    Cc: Frederic Weisbecker
    Cc: Johannes Weiner
    Cc: Kees Cook
    Cc: Mel Gorman
    Cc: Michael Kerrisk
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Robin Holt
    Cc: Sedat Dilek
    Cc: Srikar Dronamraju
    Cc: Thomas Gleixner
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • With split page table lock for PMD level we can't hold mm->page_table_lock
    while updating nr_ptes.

    Let's convert it to atomic_long_t to avoid races.

    Signed-off-by: Kirill A. Shutemov
    Tested-by: Alex Thorlton
    Cc: Ingo Molnar
    Cc: Naoya Horiguchi
    Cc: "Eric W . Biederman"
    Cc: "Paul E . McKenney"
    Cc: Al Viro
    Cc: Andi Kleen
    Cc: Andrea Arcangeli
    Cc: Dave Hansen
    Cc: Dave Jones
    Cc: David Howells
    Cc: Frederic Weisbecker
    Cc: Johannes Weiner
    Cc: Kees Cook
    Cc: Mel Gorman
    Cc: Michael Kerrisk
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Robin Holt
    Cc: Sedat Dilek
    Cc: Srikar Dronamraju
    Cc: Thomas Gleixner
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Pull btrfs update frm Chris Mason:
    "This is our usual merge window set of bug fixes, performance
    improvements and cleanups. Miao Xie has some really nice
    optimizations for writeback.

    Josef also expanded our sanity checks quite a bit; these make up a big
    chunk of the new lines"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (98 commits)
    Btrfs: rename btrfs_start_all_delalloc_inodes
    Btrfs: don't wait for the completion of all the ordered extents
    Btrfs: don't wait for all the async delalloc when shrinking delalloc
    Btrfs: fix the confusion between delalloc bytes and metadata bytes
    Btrfs: pick up the code for the item number calculation in flush_space()
    Btrfs: wait for the ordered extent only when we want
    Btrfs: remove unnecessary initialization and memory barrior in shrink_delalloc()
    Btrfs: avoid unnecessary scrub workers allocation
    Btrfs: check file extent type before anything else
    btrfs: Remove useless variable in write_ctree_super()
    btrfs: Fix checkpatch.pl warning of spacing issues
    btrfs: Replace kmalloc with kmalloc_array
    btrfs: Enclose macros with complex values within parenthesis
    btrfs: Use WARN_ON()'s return value in place of WARN_ON(1)
    btrfs: Remove redundant local zero structure
    btrfs: Pack struct btrfs_device
    btrfs: Replace multiple atomic_inc() with atomic_add()
    btrfs: Add helper function for free_root_pointers()
    Btrfs: fix a crash when running balance and defrag concurrently
    Btrfs: do not run snapshot-aware defragment on error
    ...

    Linus Torvalds
     
  • I noticed that we export a way to high value for the maxfilesize
    attribute when debugging a client issue. The issue didn't turn
    out to be related to it, but I think we should export it, so that
    clients can limit what write sizes they accept before hitting
    the server.

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

    Christoph Hellwig
     

14 Nov, 2013

8 commits

  • Pull ext4 changes from Ted Ts'o:
    "Ext4 updates for 3.13. Mostly bug fixes and cleanups"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: add prototypes for macro-generated functions
    ext4: return non-zero st_blocks for inline data
    ext4: use prandom_u32() instead of get_random_bytes()
    ext4: remove unreachable code after ext4_can_extents_be_merged()
    ext4: remove unreachable code in ext4_can_extents_be_merged()
    ext4: avoid bh leak in retry path of ext4_expand_extra_isize_ea()
    ext4: don't count free clusters from a corrupt block group
    ext4: fix FITRIM in no journal mode
    ext4: drop set but otherwise unused variable from ext4_add_dirent_to_inline()
    ext4: change ext4_read_inline_dir() to return 0 on success
    ext4: pair trace_ext4_writepages & trace_ext4_writepages_result
    ext4: add ratelimiting to ext4 messages
    ext4: fix performance regression in ext4_writepages
    ext4: fixup kerndoc annotation of mpage_map_and_submit_extent()
    ext4: fix assertion in ext4_add_complete_io()

    Linus Torvalds
     
  • Pull xfs update from Ben Myers:
    "For 3.13-rc1 we have an eclectic assortment of bugfixes, cleanups, and
    refactoring. Bugfixes that stand out are the fix for the AGF/AGI
    deadlock, incore extent list fixes, verifier fixes for v4 superblocks
    and growfs, and memory leaks. There are some asserts, warnings, and
    strings that were cleaned up. There was further rearrangement of code
    to make libxfs and the kernel sync up more easily, differences between
    v2 and v3 directory code were abstracted using an ops vector,
    xfs_inactive was reworked, and the preallocation/hole punching code
    was refactored.

    - simplify kmem_zone_zalloc
    - add traces for AGF/AGI read ops
    - add additional AIL traces
    - fix xfs_remove AGF vs AGI deadlock
    - fix the extent count of new incore extent page in the indirection
    array
    - don't fail bad secondary superblocks verification on v4 filesystems
    due to unzeroed bits after v4 fields
    - fix possible NULL dereference in xlog_verify_iclog
    - remove redundant assert in xfs_dir2_leafn_split
    - prevent stack overflows from page cache allocation
    - fix some sparse warnings
    - fix directory block format verifier to check the leaf entry count
    - abstract the differences in dir2/dir3 via an ops vector
    - continue process of reorganization to make libxfs/kernel code
    merges easier
    - refactor the preallocation and hole punching code
    - fix for growfs and verifiers
    - remove unnecessary scary corruption error when probing non-xfs
    filesystems
    - remove extra newlines from strings passed to printk
    - prevent deadlock trying to cover an active log
    - rework xfs_inactive()
    - add the inode directory type support to XFS_IOC_FSGEOM
    - cleanup (remove) usage of is_bad_inode
    - fix miscalculation in xfs_iext_realloc_direct which results in
    oversized direct extent list
    - remove unnecessary count arg to xfs_iomap_write_allocate
    - fix memory leak in xlog_recover_add_to_trans
    - check superblock instead of block magic to determine if dtype field
    is present
    - fix lockdep annotation due to project quotas
    - fix regression in xfs_node_toosmall which can lead to incorrect
    directory btree node collapse
    - make log recovery verify filesystem uuid of recovering blocks
    - fix XFS_IOC_FREE_EOFBLOCKS definition
    - remove invalid assert in xfs_inode_free
    - fix for AIL lock regression"

    * tag 'xfs-for-linus-v3.13-rc1' of git://oss.sgi.com/xfs/xfs: (49 commits)
    xfs: simplify kmem_{zone_}zalloc
    xfs: add tracepoints to AGF/AGI read operations
    xfs: trace AIL manipulations
    xfs: xfs_remove deadlocks due to inverted AGF vs AGI lock ordering
    xfs: fix the extent count when allocating an new indirection array entry
    xfs: be more forgiving of a v4 secondary sb w/ junk in v5 fields
    xfs: fix possible NULL dereference in xlog_verify_iclog
    xfs:xfs_dir2_node.c: pointer use before check for null
    xfs: prevent stack overflows from page cache allocation
    xfs: fix static and extern sparse warnings
    xfs: validity check the directory block leaf entry count
    xfs: make dir2 ftype offset pointers explicit
    xfs: convert directory vector functions to constants
    xfs: convert directory vector functions to constants
    xfs: vectorise encoding/decoding directory headers
    xfs: vectorise DA btree operations
    xfs: vectorise directory leaf operations
    xfs: vectorise directory data operations part 2
    xfs: vectorise directory data operations
    xfs: vectorise remaining shortform dir2 ops
    ...

    Linus Torvalds
     
  • Pull core locking changes from Ingo Molnar:
    "The biggest changes:

    - add lockdep support for seqcount/seqlocks structures, this
    unearthed both bugs and required extra annotation.

    - move the various kernel locking primitives to the new
    kernel/locking/ directory"

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
    block: Use u64_stats_init() to initialize seqcounts
    locking/lockdep: Mark __lockdep_count_forward_deps() as static
    lockdep/proc: Fix lock-time avg computation
    locking/doc: Update references to kernel/mutex.c
    ipv6: Fix possible ipv6 seqlock deadlock
    cpuset: Fix potential deadlock w/ set_mems_allowed
    seqcount: Add lockdep functionality to seqcount/seqlock structures
    net: Explicitly initialize u64_stats_sync structures for lockdep
    locking: Move the percpu-rwsem code to kernel/locking/
    locking: Move the lglocks code to kernel/locking/
    locking: Move the rwsem code to kernel/locking/
    locking: Move the rtmutex code to kernel/locking/
    locking: Move the semaphore core to kernel/locking/
    locking: Move the spinlock code to kernel/locking/
    locking: Move the lockdep code to kernel/locking/
    locking: Move the mutex code to kernel/locking/
    hung_task debugging: Add tracepoint to report the hang
    x86/locking/kconfig: Update paravirt spinlock Kconfig description
    lockstat: Report avg wait and hold times
    lockdep, x86/alternatives: Drop ancient lockdep fixup message
    ...

    Linus Torvalds
     
  • This first patch adds the ability for us to do a server side copy
    (ie fast copy offloaded to the server to perform, aka refcopy)

    "cp --reflink"

    of one file to another located on the same server. This
    is much faster than traditional copy (which requires
    reading and writing over the network and extra
    memcpys).

    This first version is not going to be copy
    files larger than about 1MB (to Samba) until I add
    support for multiple chunks and for autoconfiguring
    the chunksize.

    It includes:
    1) processing of the ioctl
    2) marshalling and sending the SMB2/SMB3 fsctl over the network
    3) simple parsing of the response

    It does not include yet (these will be in followon patches to come soon):
    1) support for multiple chunks
    2) support for autoconfiguring and remembering the chunksize
    3) Support for the older style copychunk which Samba 4.1 server supports
    (because this requires write permission on the target file, which
    cp does not give you, apparently per-posix). This may require
    a distinct tool (other than cp) and other ioctl to implement.

    Reviewed-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Steve French
     
  • Pull MTD changes from Brian Norris:
    - Unify some compile-time differences so that we have fewer uses of
    #ifdef CONFIG_OF in atmel_nand
    - Other general cleanups (removing unused functions, options,
    variables, fields; use correct interfaces)
    - Fix BUG() for new odd-sized NAND, which report non-power-of-2
    dimensions via ONFI
    - Miscellaneous driver fixes (SPI NOR flash; BCM47xx NAND flash; etc.)
    - Improve differentiation between SLC and MLC NAND -- this clarifies an
    ABI issue regarding the MTD "type" (in sysfs and in the MEMGETINFO
    ioctl), where the MTD_MLCNANDFLASH type was present but
    inconsistently used
    - Extend GPMI NAND to support multi-chip-select NAND for some platforms
    - Many improvements to the OMAP2/3 NAND driver, including an expanded
    DT binding to bring us closer to mainline support for some OMAP
    systems
    - Fix a deadlock in the error path of the Atmel NAND driver probe
    - Correct the error codes from MTD mmap() to conform to POSIX and the
    Linux Programmer's Manual. This is an acknowledged change in the MTD
    ABI, but I can't imagine somebody relying on the non-standard -ENOSYS
    error code specifically. Am I just being unimaginative? :)
    - Fix a few important GPMI NAND bugs (one regression from 3.12 and one
    long-standing race condition)
    - More? Read the log!

    * tag 'for-linus-20131112' of git://git.infradead.org/linux-mtd: (98 commits)
    mtd: gpmi: fix the NULL pointer
    mtd: gpmi: fix kernel BUG due to racing DMA operations
    mtd: mtdchar: return expected errors on mmap() call
    mtd: gpmi: only scan two chips for imx6
    mtd: gpmi: Use devm_kzalloc()
    mtd: atmel_nand: fix bug driver will in a dead lock if no nand detected
    mtd: nand: use a local variable to simplify the nand_scan_tail
    mtd: nand: remove deprecated IRQF_DISABLED
    mtd: dataflash: Say if we find a device we don't support
    mtd: nand: omap: fix error return code in omap_nand_probe()
    mtd: nand_bbt: kill NAND_BBT_SCANALLPAGES
    mtd: m25p80: fixup device removal failure path
    mtd: mxc_nand: Include linux/of.h header
    mtd: remove duplicated include from mtdcore.c
    mtd: m25p80: add support for Macronix mx25l3255e
    mtd: nand: omap: remove selection of BCH ecc-scheme via KConfig
    mtd: nand: omap: updated devm_xx for all resource allocation and free calls
    mtd: nand: omap: use drivers/mtd/nand/nand_bch.c wrapper for BCH ECC instead of lib/bch.c
    mtd: nand: omap: clean-up ecc layout for BCH ecc schemes
    mtd: nand: omap2: clean-up BCHx_HW and BCHx_SW ECC configurations in device_probe
    ...

    Linus Torvalds
     
  • Pull block IO core updates from Jens Axboe:
    "This is the pull request for the core changes in the block layer for
    3.13. It contains:

    - The new blk-mq request interface.

    This is a new and more scalable queueing model that marries the
    best part of the request based interface we currently have (which
    is fully featured, but scales poorly) and the bio based "interface"
    which the new drivers for high IOPS devices end up using because
    it's much faster than the request based one.

    The bio interface has no block layer support, since it taps into
    the stack much earlier. This means that drivers end up having to
    implement a lot of functionality on their own, like tagging,
    timeout handling, requeue, etc. The blk-mq interface provides all
    these. Some drivers even provide a switch to select bio or rq and
    has code to handle both, since things like merging only works in
    the rq model and hence is faster for some workloads. This is a
    huge mess. Conversion of these drivers nets us a substantial code
    reduction. Initial results on converting SCSI to this model even
    shows an 8x improvement on single queue devices. So while the
    model was intended to work on the newer multiqueue devices, it has
    substantial improvements for "classic" hardware as well. This code
    has gone through extensive testing and development, it's now ready
    to go. A pull request is coming to convert virtio-blk to this
    model will be will be coming as well, with more drivers scheduled
    for 3.14 conversion.

    - Two blktrace fixes from Jan and Chen Gang.

    - A plug merge fix from Alireza Haghdoost.

    - Conversion of __get_cpu_var() from Christoph Lameter.

    - Fix for sector_div() with 64-bit divider from Geert Uytterhoeven.

    - A fix for a race between request completion and the timeout
    handling from Jeff Moyer. This is what caused the merge conflict
    with blk-mq/core, in case you are looking at that.

    - A dm stacking fix from Mike Snitzer.

    - A code consolidation fix and duplicated code removal from Kent
    Overstreet.

    - A handful of block bug fixes from Mikulas Patocka, fixing a loop
    crash and memory corruption on blk cg.

    - Elevator switch bug fix from Tomoki Sekiyama.

    A heads-up that I had to rebase this branch. Initially the immutable
    bio_vecs had been queued up for inclusion, but a week later, it became
    clear that it wasn't fully cooked yet. So the decision was made to
    pull this out and postpone it until 3.14. It was a straight forward
    rebase, just pruning out the immutable series and the later fixes of
    problems with it. The rest of the patches applied directly and no
    further changes were made"

    * 'for-3.13/core' of git://git.kernel.dk/linux-block: (31 commits)
    block: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO
    block: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO
    block: Do not call sector_div() with a 64-bit divisor
    kernel: trace: blktrace: remove redundent memcpy() in compat_blk_trace_setup()
    block: Consolidate duplicated bio_trim() implementations
    block: Use rw_copy_check_uvector()
    block: Enable sysfs nomerge control for I/O requests in the plug list
    block: properly stack underlying max_segment_size to DM device
    elevator: acquire q->sysfs_lock in elevator_change()
    elevator: Fix a race in elevator switching and md device initialization
    block: Replace __get_cpu_var uses
    bdi: test bdi_init failure
    block: fix a probe argument to blk_register_region
    loop: fix crash if blk_alloc_queue fails
    blk-core: Fix memory corruption if blkcg_init_queue fails
    block: fix race between request completion and timeout handling
    blktrace: Send BLK_TN_PROCESS events to all running traces
    blk-mq: don't disallow request merges for req->special being set
    blk-mq: mq plug list breakage
    blk-mq: fix for flush deadlock
    ...

    Linus Torvalds
     
  • Currently, when we try to mount and get back NFS4ERR_CLID_IN_USE or
    NFS4ERR_WRONGSEC, we create a new rpc_clnt and then try the call again.
    There is no guarantee that doing so will work however, so we can end up
    retrying the call in an infinite loop.

    Worse yet, we create the new client using rpc_clone_client_set_auth,
    which creates the new client as a child of the old one. Thus, we can end
    up with a *very* long lineage of rpc_clnts. When we go to put all of the
    references to them, we can end up with a long call chain that can smash
    the stack as each rpc_free_client() call can recurse back into itself.

    This patch fixes this by simply ensuring that the SETCLIENTID call will
    only be retried in this situation if the last attempt did not use
    RPC_AUTH_UNIX.

    Note too that with this change, we don't need the (i > 2) check in the
    -EACCES case since we now have a more reliable test as to whether we
    should reattempt.

    Cc: stable@vger.kernel.org # v3.10+
    Cc: Chuck Lever
    Tested-by/Acked-by: Weston Andros Adamson
    Signed-off-by: Jeff Layton
    Signed-off-by: Trond Myklebust

    Jeff Layton
     
  • Currently the rpc code conservatively refuses to accept rpc's from a
    client if the sum of its worst-case estimates of the replies it owes
    that client exceed the send buffer space.

    Unfortunately our estimate of the worst-case reply for an NFSv4 compound
    is always the maximum read size. This can unnecessarily limit the
    number of operations we handle concurrently, for example in the case
    most operations are writes (which have small replies).

    We can do a little better if we check which ops the compound contains.

    This is still a rough estimate, we'll need to improve on it some day.

    Reported-by: Shyam Kaushik
    Tested-by: Shyam Kaushik
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     

13 Nov, 2013

10 commits

  • ... and equivalent is needed in 3.12; it's broken there as well

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Li Zhong
    Signed-off-by: Al Viro

    Li Zhong
     
  • We should unlock here before returning.

    Fixes: df4e8d2c1d2b ('locks: implement delegations')
    Signed-off-by: Dan Carpenter
    Signed-off-by: Al Viro

    Dan Carpenter
     
  • alloc_anon_inode() returns an ERR_PTR(), it doesn't return NULL.

    Fixes: 71ad7490c1f3 ('rework aio migrate pages to use aio fs')
    Signed-off-by: Dan Carpenter
    Signed-off-by: Al Viro

    Dan Carpenter
     
  • Merge first patch-bomb from Andrew Morton:
    "Quite a lot of other stuff is banked up awaiting further
    next->mainline merging, but this batch contains:

    - Lots of random misc patches
    - OCFS2
    - Most of MM
    - backlight updates
    - lib/ updates
    - printk updates
    - checkpatch updates
    - epoll tweaking
    - rtc updates
    - hfs
    - hfsplus
    - documentation
    - procfs
    - update gcov to gcc-4.7 format
    - IPC"

    * emailed patches from Andrew Morton : (269 commits)
    ipc, msg: fix message length check for negative values
    ipc/util.c: remove unnecessary work pending test
    devpts: plug the memory leak in kill_sb
    ./Makefile: export initial ramdisk compression config option
    init/Kconfig: add option to disable kernel compression
    drivers: w1: make w1_slave::flags long to avoid memory corruption
    drivers/w1/masters/ds1wm.cuse dev_get_platdata()
    drivers/memstick/core/ms_block.c: fix unreachable state in h_msb_read_page()
    drivers/memstick/core/mspro_block.c: fix attributes array allocation
    drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr
    kernel/panic.c: reduce 1 byte usage for print tainted buffer
    gcov: reuse kbasename helper
    kernel/gcov/fs.c: use pr_warn()
    kernel/module.c: use pr_foo()
    gcov: compile specific gcov implementation based on gcc version
    gcov: add support for gcc 4.7 gcov format
    gcov: move gcov structs definitions to a gcc version specific file
    kernel/taskstats.c: return -ENOMEM when alloc memory fails in add_del_listener()
    kernel/taskstats.c: add nla_nest_cancel() for failure processing between nla_nest_start() and nla_nest_end()
    kernel/sysctl_binary.c: use scnprintf() instead of snprintf()
    ...

    Linus Torvalds
     
  • Pull vfs updates from Al Viro:
    "All kinds of stuff this time around; some more notable parts:

    - RCU'd vfsmounts handling
    - new primitives for coredump handling
    - files_lock is gone
    - Bruce's delegations handling series
    - exportfs fixes

    plus misc stuff all over the place"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (101 commits)
    ecryptfs: ->f_op is never NULL
    locks: break delegations on any attribute modification
    locks: break delegations on link
    locks: break delegations on rename
    locks: helper functions for delegation breaking
    locks: break delegations on unlink
    namei: minor vfs_unlink cleanup
    locks: implement delegations
    locks: introduce new FL_DELEG lock flag
    vfs: take i_mutex on renamed file
    vfs: rename I_MUTEX_QUOTA now that it's not used for quotas
    vfs: don't use PARENT/CHILD lock classes for non-directories
    vfs: pull ext4's double-i_mutex-locking into common code
    exportfs: fix quadratic behavior in filehandle lookup
    exportfs: better variable name
    exportfs: move most of reconnect_path to helper function
    exportfs: eliminate unused "noprogress" counter
    exportfs: stop retrying once we race with rename/remove
    exportfs: clear DISCONNECTED on all parents sooner
    exportfs: more detailed comment for path_reconnect
    ...

    Linus Torvalds
     
  • Pull dlm fix from David Teigland:
    "This set includes a single fix to resolve to a race that could cause
    lockspace shutdown to incorrectly return -EBUSY"

    * tag 'dlm-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
    dlm: Avoid that dlm_release_lockspace() incorrectly returns -EBUSY

    Linus Torvalds
     
  • Pull ubifs changes from Artem Bityutskiy:
    "Mostly fixes for the power cut emulation UBIFS mode, and only one
    functional change which fixes a return error code"

    * tag 'upstream-3.13-rc1' of git://git.infradead.org/linux-ubifs:
    UBIFS: correct data corruption range
    UBIFS: fix return code
    UBIFS: remove unnecessary code in ubifs_garbage_collect

    Linus Torvalds
     
  • Pull fuse updates from Miklos Szeredi:
    "This adds a ->writepage() implementation to fuse, improving mmaped
    writeout and paving the way for buffered writeback.

    And there's a patch to add a fix minor number for /dev/cuse, similarly
    to /dev/fuse"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
    fuse: writepages: protect secondary requests from fuse file release
    fuse: writepages: update bdi writeout when deleting secondary request
    fuse: writepages: crop secondary requests
    fuse: writepages: roll back changes if request not found
    cuse: add fix minor number to /dev/cuse
    fuse: writepage: skip already in flight
    fuse: writepages: handle same page rewrites
    fuse: writepages: fix aggregation
    fuse: fix race in fuse_writepages()
    fuse: Implement writepages callback
    fuse: don't BUG on no write file
    fuse: lock page in mkwrite
    fuse: Prepare to handle multiple pages in writeback
    fuse: Getting file for writeback helper

    Linus Torvalds
     
  • Pull ext[23], udf and quota fixes from Jan Kara:
    "Assorted fixes in quota, ext2, ext3 & udf.

    Probably the most important is a fix of fs corruption issue in ext2
    XIP support (OTOH xip is rarely used)"

    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    ext2: Fix fs corruption in ext2_get_xip_mem()
    quota: info leak in quota_getquota()
    jbd: Revert "jbd: remove dependency on __GFP_NOFAIL"
    udf: fix for pathetic mount times in case of invalid file system
    ext3: Count journal as bsddf overhead in ext3_statfs

    Linus Torvalds