30 Jul, 2016

1 commit

  • Pull CIFS/SMB3 fixes from Steve French:
    "Various CIFS/SMB3 fixes, most for stable"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    CIFS: Fix a possible invalid memory access in smb2_query_symlink()
    fs/cifs: make share unaccessible at root level mountable
    cifs: fix crash due to race in hmac(md5) handling
    cifs: unbreak TCP session reuse
    cifs: Check for existing directory when opening file with O_CREAT
    Add MF-Symlinks support for SMB 2.0

    Linus Torvalds
     

29 Jul, 2016

2 commits

  • Pull vfs updates from Al Viro:
    "Assorted cleanups and fixes.

    Probably the most interesting part long-term is ->d_init() - that will
    have a bunch of followups in (at least) ceph and lustre, but we'll
    need to sort the barrier-related rules before it can get used for
    really non-trivial stuff.

    Another fun thing is the merge of ->d_iput() callers (dentry_iput()
    and dentry_unlink_inode()) and a bunch of ->d_compare() ones (all
    except the one in __d_lookup_lru())"

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (26 commits)
    fs/dcache.c: avoid soft-lockup in dput()
    vfs: new d_init method
    vfs: Update lookup_dcache() comment
    bdev: get rid of ->bd_inodes
    Remove last traces of ->sync_page
    new helper: d_same_name()
    dentry_cmp(): use lockless_dereference() instead of smp_read_barrier_depends()
    vfs: clean up documentation
    vfs: document ->d_real()
    vfs: merge .d_select_inode() into .d_real()
    unify dentry_iput() and dentry_unlink_inode()
    binfmt_misc: ->s_root is not going anywhere
    drop redundant ->owner initializations
    ufs: get rid of redundant checks
    orangefs: constify inode_operations
    missed comment updates from ->direct_IO() prototype change
    file_inode(f)->i_mapping is f->f_mapping
    trim fsnotify hooks a bit
    9p: new helper - v9fs_parent_fid()
    debugfs: ->d_parent is never NULL or negative
    ...

    Linus Torvalds
     
  • This changes the vfs dentry hashing to mix in the parent pointer at the
    _beginning_ of the hash, rather than at the end.

    That actually improves both the hash and the code generation, because we
    can move more of the computation to the "static" part of the dcache
    setup, and do less at lookup runtime.

    It turns out that a lot of other hash users also really wanted to mix in
    a base pointer as a 'salt' for the hash, and so the slightly extended
    interface ends up working well for other cases too.

    Users that want a string hash that is purely about the string pass in a
    'salt' pointer of NULL.

    * merge branch 'salted-string-hash':
    fs/dcache.c: Save one 32-bit multiply in dcache lookup
    vfs: make the string hashes salt the hash

    Linus Torvalds
     

28 Jul, 2016

2 commits

  • During following a symbolic link we received err_buf from SMB2_open().
    While the validity of SMB2 error response is checked previously
    in smb2_check_message() a symbolic link payload is not checked at all.
    Fix it by adding such checks.

    Cc: Dan Carpenter
    CC: Stable
    Signed-off-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Pavel Shilovsky
     
  • if, when mounting //HOST/share/sub/dir/foo we can query /sub/dir/foo but
    not any of the path components above:

    - store the /sub/dir/foo prefix in the cifs super_block info
    - in the superblock, set root dentry to the subpath dentry (instead of
    the share root)
    - set a flag in the superblock to remember it
    - use prefixpath when building path from a dentry

    fixes bso#8950

    Signed-off-by: Aurelien Aptel
    CC: Stable
    Reviewed-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Aurelien Aptel
     

27 Jul, 2016

1 commit

  • Vladimir has noticed that we might declare memcg oom even during
    readahead because read_pages only uses GFP_KERNEL (with mapping_gfp
    restriction) while __do_page_cache_readahead uses
    page_cache_alloc_readahead which adds __GFP_NORETRY to prevent from
    OOMs. This gfp mask discrepancy is really unfortunate and easily
    fixable. Drop page_cache_alloc_readahead() which only has one user and
    outsource the gfp_mask logic into readahead_gfp_mask and propagate this
    mask from __do_page_cache_readahead down to read_pages.

    This alone would have only very limited impact as most filesystems are
    implementing ->readpages and the common implementation mpage_readpages
    does GFP_KERNEL (with mapping_gfp restriction) again. We can tell it to
    use readahead_gfp_mask instead as this function is called only during
    readahead as well. The same applies to read_cache_pages.

    ext4 has its own ext4_mpage_readpages but the path which has pages !=
    NULL can use the same gfp mask. Btrfs, cifs, f2fs and orangefs are
    doing a very similar pattern to mpage_readpages so the same can be
    applied to them as well.

    [akpm@linux-foundation.org: coding-style fixes]
    [mhocko@suse.com: restrict gfp mask in mpage_alloc]
    Link: http://lkml.kernel.org/r/20160610074223.GC32285@dhcp22.suse.cz
    Link: http://lkml.kernel.org/r/1465301556-26431-1-git-send-email-mhocko@kernel.org
    Signed-off-by: Michal Hocko
    Cc: Vladimir Davydov
    Cc: Chris Mason
    Cc: Steve French
    Cc: Theodore Ts'o
    Cc: Jan Kara
    Cc: Mike Marshall
    Cc: Jaegeuk Kim
    Cc: Changman Lee
    Cc: Chao Yu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

20 Jul, 2016

2 commits

  • The secmech hmac(md5) structures are present in the TCP_Server_Info
    struct and can be shared among multiple CIFS sessions. However, the
    server mutex is not currently held when these structures are allocated
    and used, which can lead to a kernel crashes, as in the scenario below:

    mount.cifs(8) #1 mount.cifs(8) #2

    Is secmech.sdeschmaccmd5 allocated?
    // false

    Is secmech.sdeschmaccmd5 allocated?
    // false

    secmech.hmacmd = crypto_alloc_shash..
    secmech.sdeschmaccmd5 = kzalloc..
    sdeschmaccmd5->shash.tfm = &secmec.hmacmd;

    secmech.sdeschmaccmd5 = kzalloc
    // sdeschmaccmd5->shash.tfm
    // not yet assigned

    crypto_shash_update()
    deref NULL sdeschmaccmd5->shash.tfm

    Unable to handle kernel paging request at virtual address 00000030
    epc : 8027ba34 crypto_shash_update+0x38/0x158
    ra : 8020f2e8 setup_ntlmv2_rsp+0x4bc/0xa84
    Call Trace:
    crypto_shash_update+0x38/0x158
    setup_ntlmv2_rsp+0x4bc/0xa84
    build_ntlmssp_auth_blob+0xbc/0x34c
    sess_auth_rawntlmssp_authenticate+0xac/0x248
    CIFS_SessSetup+0xf0/0x178
    cifs_setup_session+0x4c/0x84
    cifs_get_smb_ses+0x2c8/0x314
    cifs_mount+0x38c/0x76c
    cifs_do_mount+0x98/0x440
    mount_fs+0x20/0xc0
    vfs_kern_mount+0x58/0x138
    do_mount+0x1e8/0xccc
    SyS_mount+0x88/0xd4
    syscall_common+0x30/0x54

    Fix this by locking the srv_mutex around the code which uses these
    hmac(md5) structures. All the other secmech algos already have similar
    locking.

    Fixes: 95dc8dd14e2e84cc ("Limit allocation of crypto mechanisms to dialect which requires")
    Signed-off-by: Rabin Vincent
    Acked-by: Sachin Prabhu
    CC: Stable
    Signed-off-by: Steve French

    Rabin Vincent
     
  • adfeb3e0 ("cifs: Make echo interval tunable") added a comparison of
    vol->echo_interval to server->echo_interval as a criterium to
    match_server(), but:

    (1) A default value is set for server->echo_interval but not for
    vol->echo_interval, meaning these can never match if the echo_interval
    option is not specified.

    (2) vol->echo_interval is in seconds but server->echo_interval is in
    jiffies, meaning these can never match even if the echo_interval option
    is specified.

    This broke TCP session reuse since match_server() can never return 1.
    Fix it.

    Fixes: adfeb3e0 ("cifs: Make echo interval tunable")
    Signed-off-by: Rabin Vincent
    Acked-by: Sachin Prabhu
    CC: Stable
    Signed-off-by: Steve French

    Rabin Vincent
     

13 Jul, 2016

1 commit

  • When opening a file with O_CREAT flag, check to see if the file opened
    is an existing directory.

    This prevents the directory from being opened which subsequently causes
    a crash when the close function for directories cifs_closedir() is called
    which frees up the file->private_data memory while the file is still
    listed on the open file list for the tcon.

    Signed-off-by: Sachin Prabhu
    Signed-off-by: Steve French
    CC: Stable
    Reported-by: Xiaoli Feng

    Sachin Prabhu
     

12 Jul, 2016

1 commit


06 Jul, 2016

1 commit


25 Jun, 2016

2 commits

  • POSIX allows files with trailing spaces or a trailing period but
    SMB3 does not, so convert these using the normal Services For Mac
    mapping as we do for other reserved characters such as
    : < > | ? *
    This is similar to what Macs do for the same problem over SMB3.

    CC: Stable
    Signed-off-by: Steve French
    Acked-by: Pavel Shilovsky

    Steve French
     
  • Azure server blocks clients that open a socket and don't do anything on it.
    In our reconnect scenarios, we can reconnect the tcp session and
    detect the socket is available but we defer the negprot and SMB3 session
    setup and tree connect reconnection until the next i/o is requested, but
    this looks suspicous to some servers who expect SMB3 negprog and session
    setup soon after a socket is created.

    In the echo thread, reconnect SMB3 sessions and tree connections
    that are disconnected. A later patch will replay persistent (and
    resilient) handle opens.

    CC: Stable
    Signed-off-by: Steve French
    Acked-by: Pavel Shilovsky

    Steve French
     

24 Jun, 2016

4 commits

  • calc_lanman_hash() could return -ENOMEM or other errors, we should check
    that everything went fine before using the calculated key.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Steve French

    Luis de Bethencourt
     
  • In sess_auth_rawntlmssp_authenticate(), the ntlmssp blob is allocated
    statically and its size is an "empirical" 5*sizeof(struct
    _AUTHENTICATE_MESSAGE) (320B on x86_64). I don't know where this value
    comes from or if it was ever appropriate, but it is currently
    insufficient: the user and domain name in UTF16 could take 1kB by
    themselves. Because of that, build_ntlmssp_auth_blob() might corrupt
    memory (out-of-bounds write). The size of ntlmssp_blob in
    SMB2_sess_setup() is too small too (sizeof(struct _NEGOTIATE_MESSAGE)
    + 500).

    This patch allocates the blob dynamically in
    build_ntlmssp_auth_blob().

    Signed-off-by: Jerome Marchand
    Signed-off-by: Steve French
    CC: Stable

    Jerome Marchand
     
  • Currently in build_ntlmssp_auth_blob(), when converting the domain
    name to UTF16, CIFS_MAX_USERNAME_LEN limit is used. It should be
    CIFS_MAX_DOMAINNAME_LEN. This patch fixes this.

    Signed-off-by: Jerome Marchand
    Signed-off-by: Steve French

    Jerome Marchand
     
  • Right now, we send the tgid cross the wire. What we really want to send
    though is a hashed fl_owner_t since samba treats this field as a generic
    lockowner.

    It turns out that because we enforce and release locks locally before
    they are ever sent to the server, this patch makes no difference in
    behavior. Still, setting OFD locks on the server using the process
    pid seems wrong, so I think this patch still makes sense.

    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French
    Acked-by: Pavel Shilovsky
    Acked-by: Sachin Prabhu

    Jeff Layton
     

11 Jun, 2016

1 commit

  • We always mixed in the parent pointer into the dentry name hash, but we
    did it late at lookup time. It turns out that we can simplify that
    lookup-time action by salting the hash with the parent pointer early
    instead of late.

    A few other users of our string hashes also wanted to mix in their own
    pointers into the hash, and those are updated to use the same mechanism.

    Hash users that don't have any particular initial salt can just use the
    NULL pointer as a no-salt.

    Cc: Vegard Nossum
    Cc: George Spelvin
    Cc: Al Viro
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

30 May, 2016

1 commit


28 May, 2016

1 commit


20 May, 2016

3 commits

  • Remove some obsolete comments in the cifs inode_operations
    structs that were pointed out by Stephen Rothwell.

    CC: Stephen Rothwell
    CC: Al Viro
    Reviewed-by: Sachin Prabhu
    Signed-off-by: Steve French

    Steve French
     
  • The session key is the default keyring set for request_key operations.
    This session key is revoked when the user owning the session logs out.
    Any long running daemon processes started by this session ends up with
    revoked session keyring which prevents these processes from using the
    request_key mechanism from obtaining the krb5 keys.

    The problem has been reported by a large number of autofs users. The
    problem is also seen with multiuser mounts where the share may be used
    by processes run by a user who has since logged out. A reproducer using
    automount is available on the Red Hat bz.

    The patch creates a new keyring which is used to cache cifs spnego
    upcalls.

    Red Hat bz: 1267754

    Signed-off-by: Sachin Prabhu
    Reported-by: Scott Mayhew
    Reviewed-by: Shirish Pargaonkar
    CC: Stable
    Signed-off-by: Steve French

    Sachin Prabhu
     
  • Pull security subsystem updates from James Morris:
    "Highlights:

    - A new LSM, "LoadPin", from Kees Cook is added, which allows forcing
    of modules and firmware to be loaded from a specific device (this
    is from ChromeOS, where the device as a whole is verified
    cryptographically via dm-verity).

    This is disabled by default but can be configured to be enabled by
    default (don't do this if you don't know what you're doing).

    - Keys: allow authentication data to be stored in an asymmetric key.
    Lots of general fixes and updates.

    - SELinux: add restrictions for loading of kernel modules via
    finit_module(). Distinguish non-init user namespace capability
    checks. Apply execstack check on thread stacks"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (48 commits)
    LSM: LoadPin: provide enablement CONFIG
    Yama: use atomic allocations when reporting
    seccomp: Fix comment typo
    ima: add support for creating files using the mknodat syscall
    ima: fix ima_inode_post_setattr
    vfs: forbid write access when reading a file into memory
    fs: fix over-zealous use of "const"
    selinux: apply execstack check on thread stacks
    selinux: distinguish non-init user namespace capability checks
    LSM: LoadPin for kernel file loading restrictions
    fs: define a string representation of the kernel_read_file_id enumeration
    Yama: consolidate error reporting
    string_helpers: add kstrdup_quotable_file
    string_helpers: add kstrdup_quotable_cmdline
    string_helpers: add kstrdup_quotable
    selinux: check ss_initialized before revalidating an inode label
    selinux: delay inode label lookup as long as possible
    selinux: don't revalidate an inode's label when explicitly setting it
    selinux: Change bool variable name to index.
    KEYS: Add KEYCTL_DH_COMPUTE command
    ...

    Linus Torvalds
     

19 May, 2016

2 commits

  • Pull cifs iovec cleanups from Al Viro.

    * 'sendmsg.cifs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    cifs: don't bother with kmap on read_pages side
    cifs_readv_receive: use cifs_read_from_socket()
    cifs: no need to wank with copying and advancing iovec on recvmsg side either
    cifs: quit playing games with draining iovecs
    cifs: merge the hash calculation helpers

    Linus Torvalds
     
  • Pull cifs updates from Steve French:
    "Various small CIFS and SMB3 fixes (including some for stable)"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    remove directory incorrectly tries to set delete on close on non-empty directories
    Update cifs.ko version to 2.09
    fs/cifs: correctly to anonymous authentication for the NTLM(v2) authentication
    fs/cifs: correctly to anonymous authentication for the NTLM(v1) authentication
    fs/cifs: correctly to anonymous authentication for the LANMAN authentication
    fs/cifs: correctly to anonymous authentication via NTLMSSP
    cifs: remove any preceding delimiter from prefix_path
    cifs: Use file_dentry()

    Linus Torvalds
     

18 May, 2016

11 commits

  • Pull networking updates from David Miller:
    "Highlights:

    1) Support SPI based w5100 devices, from Akinobu Mita.

    2) Partial Segmentation Offload, from Alexander Duyck.

    3) Add GMAC4 support to stmmac driver, from Alexandre TORGUE.

    4) Allow cls_flower stats offload, from Amir Vadai.

    5) Implement bpf blinding, from Daniel Borkmann.

    6) Optimize _ASYNC_ bit twiddling on sockets, unless the socket is
    actually using FASYNC these atomics are superfluous. From Eric
    Dumazet.

    7) Run TCP more preemptibly, also from Eric Dumazet.

    8) Support LED blinking, EEPROM dumps, and rxvlan offloading in mlx5e
    driver, from Gal Pressman.

    9) Allow creating ppp devices via rtnetlink, from Guillaume Nault.

    10) Improve BPF usage documentation, from Jesper Dangaard Brouer.

    11) Support tunneling offloads in qed, from Manish Chopra.

    12) aRFS offloading in mlx5e, from Maor Gottlieb.

    13) Add RFS and RPS support to SCTP protocol, from Marcelo Ricardo
    Leitner.

    14) Add MSG_EOR support to TCP, this allows controlling packet
    coalescing on application record boundaries for more accurate
    socket timestamp sampling. From Martin KaFai Lau.

    15) Fix alignment of 64-bit netlink attributes across the board, from
    Nicolas Dichtel.

    16) Per-vlan stats in bridging, from Nikolay Aleksandrov.

    17) Several conversions of drivers to ethtool ksettings, from Philippe
    Reynes.

    18) Checksum neutral ILA in ipv6, from Tom Herbert.

    19) Factorize all of the various marvell dsa drivers into one, from
    Vivien Didelot

    20) Add VF support to qed driver, from Yuval Mintz"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1649 commits)
    Revert "phy dp83867: Fix compilation with CONFIG_OF_MDIO=m"
    Revert "phy dp83867: Make rgmii parameters optional"
    r8169: default to 64-bit DMA on recent PCIe chips
    phy dp83867: Make rgmii parameters optional
    phy dp83867: Fix compilation with CONFIG_OF_MDIO=m
    bpf: arm64: remove callee-save registers use for tmp registers
    asix: Fix offset calculation in asix_rx_fixup() causing slow transmissions
    switchdev: pass pointer to fib_info instead of copy
    net_sched: close another race condition in tcf_mirred_release()
    tipc: fix nametable publication field in nl compat
    drivers: net: Don't print unpopulated net_device name
    qed: add support for dcbx.
    ravb: Add missing free_irq() calls to ravb_close()
    qed: Remove a stray tab
    net: ethernet: fec-mpc52xx: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fec-mpc52xx: use phydev from struct net_device
    bpf, doc: fix typo on bpf_asm descriptions
    stmmac: hardware TX COE doesn't work when force_thresh_dma_mode is set
    net: ethernet: fs-enet: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fs-enet: use phydev from struct net_device
    ...

    Linus Torvalds
     
  • Pull vfs cleanups from Al Viro:
    "More cleanups from Christoph"

    * 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    nfsd: use RWF_SYNC
    fs: add RWF_DSYNC aand RWF_SYNC
    ceph: use generic_write_sync
    fs: simplify the generic_write_sync prototype
    fs: add IOCB_SYNC and IOCB_DSYNC
    direct-io: remove the offset argument to dio_complete
    direct-io: eliminate the offset argument to ->direct_IO
    xfs: eliminate the pos variable in xfs_file_dio_aio_write
    filemap: remove the pos argument to generic_file_direct_write
    filemap: remove pos variables in generic_file_read_iter

    Linus Torvalds
     
  • Pull cifs xattr updates from Al Viro:
    "This is the remaining parts of the xattr work - the cifs bits"

    * 'for-cifs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    cifs: Switch to generic xattr handlers
    cifs: Fix removexattr for os2.* xattrs
    cifs: Check for equality with ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT
    cifs: Fix xattr name checks

    Linus Torvalds
     
  • Wrong return code was being returned on SMB3 rmdir of
    non-empty directory.

    For SMB3 (unlike for cifs), we attempt to delete a directory by
    set of delete on close flag on the open. Windows clients set
    this flag via a set info (SET_FILE_DISPOSITION to set this flag)
    which properly checks if the directory is empty.

    With this patch on smb3 mounts we correctly return
    "DIRECTORY NOT EMPTY"
    on attempts to remove a non-empty directory.

    Signed-off-by: Steve French
    CC: Stable
    Acked-by: Sachin Prabhu

    Steve French
     
  • Signed-off-by: Steven French

    Steve French
     
  • Only server which map unknown users to guest will allow
    access using a non-null NTLMv2_Response.

    For Samba it's the "map to guest = bad user" option.

    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11913

    Signed-off-by: Stefan Metzmacher
    CC: Stable
    Signed-off-by: Steve French

    Stefan Metzmacher
     
  • Only server which map unknown users to guest will allow
    access using a non-null NTChallengeResponse.

    For Samba it's the "map to guest = bad user" option.

    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11913

    Signed-off-by: Stefan Metzmacher
    CC: Stable
    Signed-off-by: Steve French

    Stefan Metzmacher
     
  • Only server which map unknown users to guest will allow
    access using a non-null LMChallengeResponse.

    For Samba it's the "map to guest = bad user" option.

    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11913

    Signed-off-by: Stefan Metzmacher
    CC: Stable
    Signed-off-by: Steve French

    Stefan Metzmacher
     
  • See [MS-NLMP] 3.2.5.1.2 Server Receives an AUTHENTICATE_MESSAGE from the Client:

    ...
    Set NullSession to FALSE
    If (AUTHENTICATE_MESSAGE.UserNameLen == 0 AND
    AUTHENTICATE_MESSAGE.NtChallengeResponse.Length == 0 AND
    (AUTHENTICATE_MESSAGE.LmChallengeResponse == Z(1)
    OR
    AUTHENTICATE_MESSAGE.LmChallengeResponse.Length == 0))
    -- Special case: client requested anonymous authentication
    Set NullSession to TRUE
    ...

    Only server which map unknown users to guest will allow
    access using a non-null NTChallengeResponse.

    For Samba it's the "map to guest = bad user" option.

    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11913

    CC: Stable
    Signed-off-by: Stefan Metzmacher
    Signed-off-by: Steve French

    Stefan Metzmacher
     
  • We currently do not check if any delimiter exists before the prefix
    path in cifs_compose_mount_options(). Consequently when building the
    devname using cifs_build_devname() we can end up with multiple
    delimiters separating the UNC and the prefix path.

    An issue was reported by the customer mounting a folder within a DFS
    share from a Netapp server which uses McAfee antivirus. We have
    narrowed down the cause to the use of double backslashes in the file
    name used to open the file. This was determined to be caused because of
    additional delimiters as a result of the bug.

    In addition to changes in cifs_build_devname(), we also fix
    cifs_parse_devname() to ignore any preceding delimiter for the prefix
    path.

    The problem was originally reported on RHEL 6 in RHEL bz 1252721. This
    is the upstream version of the fix. The fix was confirmed by looking at
    the packet capture of a DFS mount.

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

    Sachin Prabhu
     
  • CIFS may be used as lower layer of overlayfs and accessing f_path.dentry can
    lead to a crash.

    Fix by replacing direct access of file->f_path.dentry with the
    file_dentry() accessor, which will always return a native object.

    Signed-off-by: Goldwyn Rodrigues
    Acked-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Goldwyn Rodrigues
     

03 May, 2016

2 commits


02 May, 2016

2 commits

  • The kiocb already has the new position, so use that. The only interesting
    case is AIO, where we currently don't bother updating ki_pos. We're about
    to free the kiocb after we're done, so we might as well update it to make
    everyone's life simpler.

    While we're at it also return the bytes written argument passed in if
    we were successful so that the boilerplate error switch code in the
    callers can go away.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • This will allow us to do per-I/O sync file writes, as required by a lot
    of fileservers or storage targets.

    XXX: Will need a few additional audits for O_DSYNC

    Signed-off-by: Al Viro

    Christoph Hellwig