30 Jan, 2014

2 commits

  • Commit d5dc77bfeeab ("consolidate compat lookup_dcookie()") coverted all
    architectures to the new compat_sys_lookup_dcookie() syscall.

    The "len" paramater of the new compat syscall must have the type
    compat_size_t in order to enforce zero extension for architectures where
    the ABI requires that the caller of a function performed zero and/or
    sign extension to 64 bit of all parameters.

    Signed-off-by: Heiko Carstens
    Cc: Al Viro
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Hendrik Brueckner
    Cc: Martin Schwidefsky
    Cc: [v3.10+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • We got a report that the pwritev syscall does not work correctly in
    compat mode on s390.

    It turned out that with commit 72ec35163f9f ("switch compat readv/writev
    variants to COMPAT_SYSCALL_DEFINE") we lost the zero extension of a
    couple of syscall parameters because the some parameter types haven't
    been converted from unsigned long to compat_ulong_t.

    This is needed for architectures where the ABI requires that the caller
    of a function performed zero and/or sign extension to 64 bit of all
    parameters.

    Signed-off-by: Heiko Carstens
    Cc: Al Viro
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Hendrik Brueckner
    Cc: Martin Schwidefsky
    Cc: [v3.10+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     

29 Jan, 2014

10 commits

  • Pull MTD updates from Brian Norris:
    - Add me (Brian Norris) as an additional MTD maintainer (it'd be nice to get
    David's "ack" for this; I'm sure he approves, but he's been pretty silent
    lately)
    - Add Ezequiel Garcie as maintainer for the pxa3xx NAND driver
    - Last (?) round of pxa3xx improvements for supporting Armada 370/XP
    - Typical churn in driver boilerplate (OOM messages, printk()'s, devm_*, etc.)
    - Quad read mode support for SPI NOR driver (m25p80)
    - Update Davinci NAND driver to prepare for use on new platforms
    - Begin to kill off NAND_MAX_{PAGE,OOB}SIZE macros; more work is pending
    - Miscellaneous NAND device support (new IDs)
    - Add READ RETRY support for Micron MLC NAND
    - Support new GPMI NAND ECC layout device-tree binding
    - Avoid mapping stack/vmalloc() memory for GPMI NAND DMA

    * tag 'for-linus-20140127' of git://git.infradead.org/linux-mtd: (151 commits)
    mtd: gpmi: add sanity check when mapping DMA for read_buf/write_buf
    mtd: gpmi: allocate a proper buffer for non ECC read/write
    mtd: m25p80: Set rx_nbits for Quad SPI transfers
    mtd: m25p80: Enable Quad SPI read transfers for s25fl512s
    mtd: s3c2410: Merge plat/regs-nand.h into s3c2410.c
    mtd: mtdram: add missing 'const'
    mtd: m25p80: assign default read command
    mtd: nuc900_nand: remove redundant return value check of platform_get_resource()
    mtd: plat_nand: remove redundant return value check of platform_get_resource()
    mtd: nand: add Intel manufacturer ID
    mtd: nand: add SanDisk manufacturer ID
    mtd: nand: add support for Samsung K9LCG08U0B
    mtd: nand: pxa3xx: Add support for 2048 bytes page size devices
    mtd: m25p80: Use OPCODE_QUAD_READ_4B for 4-byte addressing
    mtd: nand: don't use {read,write}_buf for 8-bit transfers
    mtd: nand: use __packed shorthand
    mtd: nand: support Micron READ RETRY
    mtd: nand: add generic READ RETRY support
    mtd: nand: add ONFI vendor block for Micron
    mtd: nand: localize ECC failures per page
    ...

    Linus Torvalds
     
  • Pull second xfs update from Ben Myers:
    "Allow logical sector sized direct io on 'advanced format' 4k/512 disk"

    * tag 'xfs-for-linus-v3.14-rc1-2' of git://oss.sgi.com/xfs/xfs:
    xfs: allow logical-sector sized O_DIRECT
    xfs: rename xfs_buftarg structure members
    xfs: clean up xfs_buftarg

    Linus Torvalds
     
  • The previous ceph-client merge resulted in ceph not even building,
    because there was a merge conflict that wasn't visible as an actual data
    conflict: commit 7221fe4c2ed7 ("ceph: add acl for cephfs") added support
    for POSIX ACL's into Ceph, but unluckily we also had the VFS tree change
    a lot of the POSIX ACL helper functions to be much more helpful to
    filesystems (see for example commits 2aeccbe957d0 "fs: add generic
    xattr_acl handlers", 5bf3258fd2ac "fs: make posix_acl_chmod more useful"
    and 37bc15392a23 "fs: make posix_acl_create more useful")

    The reason this conflict wasn't obvious was many-fold: because it was a
    semantic conflict rather than a data conflict, it wasn't visible in the
    git merge as a conflict. And because the VFS tree hadn't been in
    linux-next, people hadn't become aware of it that way. And because I
    was at jury duty this morning, I was using my laptop and as a result not
    doing constant "allmodconfig" builds.

    Anyway, this fixes the build and generally removes a fair chunk of the
    Ceph POSIX ACL support code, since the improved helpers seem to match
    really well for Ceph too. But I don't actually have any way to *test*
    the end result, and I was really hoping for some ACK's for this. Oh,
    well.

    Not compiling certainly doesn't make things easier to test, so I'm
    committing this without the acks after having waited for four hours...
    Plus it's what I would have done for the merge had I noticed the
    semantic conflict..

    Reported-by: Dave Jones
    Cc: Sage Weil
    Cc: Guangliang Zhao
    Cc: Li Wang
    Cc: Christoph Hellwig
    Cc: Al Viro
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull ceph updates from Sage Weil:
    "This is a big batch. From Ilya we have:

    - rbd support for more than ~250 mapped devices (now uses same scheme
    that SCSI does for device major/minor numbering)
    - crush updates for new mapping behaviors (will be needed for coming
    erasure coding support, among other things)
    - preliminary support for tiered storage pools

    There is also a big series fixing a pile cephfs bugs with clustered
    MDSs from Yan Zheng, ACL support for cephfs from Guangliang Zhao, ceph
    fscache improvements from Li Wang, improved behavior when we get
    ENOSPC from Josh Durgin, some readv/writev improvements from
    Majianpeng, and the usual mix of small cleanups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (76 commits)
    ceph: cast PAGE_SIZE to size_t in ceph_sync_write()
    ceph: fix dout() compile warnings in ceph_filemap_fault()
    libceph: support CEPH_FEATURE_OSD_CACHEPOOL feature
    libceph: follow redirect replies from osds
    libceph: rename ceph_osd_request::r_{oloc,oid} to r_base_{oloc,oid}
    libceph: follow {read,write}_tier fields on osd request submission
    libceph: add ceph_pg_pool_by_id()
    libceph: CEPH_OSD_FLAG_* enum update
    libceph: replace ceph_calc_ceph_pg() with ceph_oloc_oid_to_pg()
    libceph: introduce and start using oid abstraction
    libceph: rename MAX_OBJ_NAME_SIZE to CEPH_MAX_OID_NAME_LEN
    libceph: move ceph_file_layout helpers to ceph_fs.h
    libceph: start using oloc abstraction
    libceph: dout() is missing a newline
    libceph: add ceph_kv{malloc,free}() and switch to them
    libceph: support CEPH_FEATURE_EXPORT_PEER
    ceph: add imported caps when handling cap export message
    ceph: add open export target session helper
    ceph: remove exported caps when handling cap import message
    ceph: handle session flush message
    ...

    Linus Torvalds
     
  • Pull exofs and ore fixes from Boaz Harrosh:
    "The main fix here, the first patch, is also destined for -stable. The
    rest is small trivia and cosmetics. The ORE patches effect both exofs
    and pnfs-objects very reproducible bugs"

    [ ORE is "object raid engine", used by exofs and pnfs - Linus ]

    * 'for-linus' of git://git.open-osd.org/linux-open-osd:
    exofs: Print less in r4w
    exofs: Allow corrupted directory entry to be empty file
    exofs: Allow O_DIRECT open
    ore: Don't crash on NULL bio in _clear_bio
    ore: Fix wrong math in allocation of per device BIO

    Linus Torvalds
     
  • Use min_t(size_t, ...) instead of plain min(), which does strict type
    checking, to avoid compile warning on i386.

    Cc: Jianpeng Ma
    Signed-off-by: Ilya Dryomov
    Reviewed-by: Sage Weil

    Ilya Dryomov
     
  • PAGE_CACHE_SIZE is unsigned long on all architectures, however size_t
    is either unsigned int or unsigned long. Rather than change format
    strings, cast PAGE_CACHE_SIZE to size_t to be in line with dout()s in
    ceph_page_mkwrite().

    Cc: Yan, Zheng
    Signed-off-by: Ilya Dryomov
    Reviewed-by: Sage Weil

    Ilya Dryomov
     
  • Pull ext4 update from Ted Ts'o:
    "Bug fixes and cleanups for ext4. We also enable the punch hole
    functionality for bigalloc file systems"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: delete "set but not used" variables
    ext4: don't pass freed handle to ext4_walk_page_buffers
    ext4: avoid clearing beyond i_blocks when truncating an inline data file
    ext4: ext4_inode_is_fast_symlink should use EXT4_CLUSTER_SIZE
    ext4: fix a typo in extents.c
    ext4: use %pd printk specificer
    ext4: standardize error handling in ext4_da_write_inline_data_begin()
    ext4: retry allocation when inline->extent conversion failed
    ext4: enable punch hole for bigalloc

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

    - stable fix for an infinite loop in RPC state machine
    - stable fix for a use after free situation in the NFSv4 trunking discovery
    - stable fix for error handling in the NFSv4 trunking discovery
    - stable fix for the page write update code
    - stable fix for the NFSv4.1 mount time security negotiation
    - stable fix for the NFSv4 open code.
    - O_DIRECT locking fixes
    - fix an Oops in the pnfs file commit code
    - RPC layer needs finer grained handling of connection errors
    - more RPC GSS upcall fixes"

    * tag 'nfs-for-3.14-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (30 commits)
    pnfs: Proper delay for NFS4ERR_RECALLCONFLICT in layout_get_done
    pnfs: fix BUG in filelayout_recover_commit_reqs
    nfs4: fix discover_server_trunking use after free
    NFSv4.1: Handle errors correctly in nfs41_walk_client_list
    nfs: always make sure page is up-to-date before extending a write to cover the entire page
    nfs: page cache invalidation for dio
    nfs: take i_mutex during direct I/O reads
    nfs: merge nfs_direct_write into nfs_file_direct_write
    nfs: merge nfs_direct_read into nfs_file_direct_read
    nfs: increment i_dio_count for reads, too
    nfs: defer inode_dio_done call until size update is done
    nfs: fix size updates for aio writes
    nfs4.1: properly handle ENOTSUP in SECINFO_NO_NAME
    NFSv4.1: Fix a race in nfs4_write_inode
    NFSv4.1: Don't trust attributes if a pNFS LAYOUTCOMMIT is outstanding
    point to the right include file in a comment (left over from a9004abc3)
    NFS: dprintk() should not print negative fileids and inode numbers
    nfs: fix dead code of ipv6_addr_scope
    sunrpc: Fix infinite loop in RPC state machine
    SUNRPC: Add tracepoint for socket errors
    ...

    Linus Torvalds
     
  • Pull vfs updates from Al Viro:
    "Assorted stuff; the biggest pile here is Christoph's ACL series. Plus
    assorted cleanups and fixes all over the place...

    There will be another pile later this week"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (43 commits)
    __dentry_path() fixes
    vfs: Remove second variable named error in __dentry_path
    vfs: Is mounted should be testing mnt_ns for NULL or error.
    Fix race when checking i_size on direct i/o read
    hfsplus: remove can_set_xattr
    nfsd: use get_acl and ->set_acl
    fs: remove generic_acl
    nfs: use generic posix ACL infrastructure for v3 Posix ACLs
    gfs2: use generic posix ACL infrastructure
    jfs: use generic posix ACL infrastructure
    xfs: use generic posix ACL infrastructure
    reiserfs: use generic posix ACL infrastructure
    ocfs2: use generic posix ACL infrastructure
    jffs2: use generic posix ACL infrastructure
    hfsplus: use generic posix ACL infrastructure
    f2fs: use generic posix ACL infrastructure
    ext2/3/4: use generic posix ACL infrastructure
    btrfs: use generic posix ACL infrastructure
    fs: make posix_acl_create more useful
    fs: make posix_acl_chmod more useful
    ...

    Linus Torvalds
     

28 Jan, 2014

3 commits

  • Commit 91c2e0bcae72 ("unify compat fanotify_mark(2), switch to
    COMPAT_SYSCALL_DEFINE") added a new unified compat fanotify_mark syscall
    to be used by all architectures.

    Unfortunately the unified version merges the split mask parameter in a
    wrong way: the lower and higher word got swapped.

    This was discovered with glibc's tst-fanotify test case.

    Signed-off-by: Heiko Carstens
    Reported-by: Andreas Krebbel
    Cc: "James E.J. Bottomley"
    Acked-by: "David S. Miller"
    Acked-by: Al Viro
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Ralf Baechle
    Cc: [3.10+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Suppress log message like this: (open_delete,8328,0):ocfs2_unlink:951
    ERROR: status = -2

    Orabug:17445485

    Signed-off-by: Xiaowei Hu
    Cc: Joe Jin
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xiaowei.Hu
     
  • Switch ceph_calc_ceph_pg() to new oloc and oid abstractions and rename
    it to ceph_oloc_oid_to_pg() to make its purpose more clear.

    Signed-off-by: Ilya Dryomov
    Reviewed-by: Sage Weil

    Ilya Dryomov
     

27 Jan, 2014

3 commits

  • Pull UML changes from Richard Weinberger:
    "This time only various cleanups and housekeeping patches"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
    um: hostfs: make functions static
    um: Include generic barrier.h
    um: Removed unused attributes from thread_struct

    Linus Torvalds
     
  • Pull 9p changes from Eric Van Hensbergen:
    "Included are a new cache model for support of mmap, and several
    cleanups across the filesystem and networking portions of the code"

    * tag 'for-3.14-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    9p: update documentation
    9P: introduction of a new cache=mmap model.
    net/9p: remove virtio default hack and set appropriate bits instead
    9p: remove useless 'name' variable and assignment
    9p: fix return value in case in v9fs_fid_xattr_set()
    9p: remove useless variable and assignment
    9p: remove useless assignment
    9p: remove unused 'super_block' struct pointer
    9p: remove never used return variable
    9p: remove unused 'p9_fid' struct pointer
    9p: remove unused 'p9_client' struct pointer

    Linus Torvalds
     
  • * we need to save the starting point for restarts
    * reject pathologically short buffers outright

    Spotted-by: Denys Vlasenko
    Spotted-by: Oleg Nesterov
    Signed-off-by: Al Viro

    Al Viro
     

26 Jan, 2014

22 commits

  • In commit 232d2d60aa5469bb097f55728f65146bd49c1d25
    Author: Waiman Long
    Date: Mon Sep 9 12:18:13 2013 -0400

    dcache: Translating dentry into pathname without taking rename_lock

    The __dentry_path locking was changed and the variable error was
    intended to be moved outside of the loop. Unfortunately the inner
    declaration of error was not removed. Resulting in a version of
    __dentry_path that will never return an error.

    Remove the problematic inner declaration of error and allow
    __dentry_path to return errors once again.

    Cc: stable@vger.kernel.org
    Cc: Waiman Long
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Al Viro

    Eric W. Biederman
     
  • A bug was introduced with the is_mounted helper function in
    commit f7a99c5b7c8bd3d3f533c8b38274e33f3da9096e
    Author: Al Viro
    Date: Sat Jun 9 00:59:08 2012 -0400

    get rid of ->mnt_longterm

    it's enough to set ->mnt_ns of internal vfsmounts to something
    distinct from all struct mnt_namespace out there; then we can
    just use the check for ->mnt_ns != NULL in the fast path of
    mntput_no_expire()

    Signed-off-by: Al Viro

    The intent was to test if the real_mount(vfsmount)->mnt_ns was
    NULL_OR_ERR but the code is actually testing real_mount(vfsmount)
    and always returning true.

    The result is d_absolute_path returning paths it should be hiding.

    Cc: stable@vger.kernel.org
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Al Viro

    Eric W. Biederman
     
  • So far I've had one ACK for this, and no other comments. So I think it
    is probably time to send this via some suitable tree. I'm guessing that
    the vfs tree would be the most appropriate route, but not sure that
    there is one at the moment (don't see anything recent at kernel.org)
    so in that case I think -mm is the "back up plan". Al, please let me
    know if you will take this?

    Steve.

    ---------------------

    Following on from the "Re: [PATCH v3] vfs: fix a bug when we do some dio
    reads with append dio writes" thread on linux-fsdevel, this patch is my
    current version of the fix proposed as option (b) in that thread.

    Removing the i_size test from the direct i/o read path at vfs level
    means that filesystems now have to deal with requests which are beyond
    i_size themselves. These I've divided into three sets:

    a) Those with "no op" ->direct_IO (9p, cifs, ceph)
    These are obviously not going to be an issue

    b) Those with "home brew" ->direct_IO (nfs, fuse)
    I've been told that NFS should not have any problem with the larger
    i_size, however I've added an extra test to FUSE to duplicate the
    original behaviour just to be on the safe side.

    c) Those using __blockdev_direct_IO()
    These call through to ->get_block() which should deal with the EOF
    condition correctly. I've verified that with GFS2 and I believe that
    Zheng has verified it for ext4. I've also run the test on XFS and it
    passes both before and after this change.

    The part of the patch in filemap.c looks a lot larger than it really is
    - there are only two lines of real change. The rest is just indentation
    of the contained code.

    There remains a test of i_size though, which was added for btrfs. It
    doesn't cause the other filesystems a problem as the test is performed
    after ->direct_IO has been called. It is possible that there is a race
    that does matter to btrfs, however this patch doesn't change that, so
    its still an overall improvement.

    Signed-off-by: Steven Whitehouse
    Reported-by: Zheng Liu
    Cc: Jan Kara
    Cc: Dave Chinner
    Acked-by: Miklos Szeredi
    Cc: Chris Mason
    Cc: Josef Bacik
    Cc: Christoph Hellwig
    Cc: Alexander Viro
    Signed-off-by: Al Viro

    Steven Whitehouse
     
  • When using the per-superblock xattr handlers permission checking is
    done by the generic code. hfsplus just needs to check for the magic
    osx attribute not to leak into protected namespaces.

    Also given that the code was obviously copied from JFS the proper
    attribution was missing.

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

    Christoph Hellwig
     
  • Remove the boilerplate code to marshall and unmarhall ACL objects into
    xattrs and operate on the posix_acl objects directly. Also move all
    the ACL handling code into nfs?acl.c where it belongs.

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

    Christoph Hellwig
     
  • And instead convert tmpfs to use the new generic ACL code, with two stub
    methods provided for in-memory filesystems.

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

    Christoph Hellwig
     
  • This causes a small behaviour change in that we don't bother to set
    ACLs on file creation if the mode bit can express the access permissions
    fully, and thus behaving identical to local filesystems.

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

    Christoph Hellwig
     
  • The hostfs_*() callback functions are all only used within
    hostfs_kern.c, so make them static.

    Signed-off-by: James Hogan
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: user-mode-linux-devel@lists.sourceforge.net
    Signed-off-by: Richard Weinberger

    James Hogan
     
  • This contains some major refactoring for the create path so that
    inodes are created with the right mode to start with instead of
    fixing it up later.

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

    Christoph Hellwig
     
  • Copy the scheme I introduced to btrfs many years ago to only use the
    xattr handler for ACLs, but pass plain attrs straight through.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Dave Kleikamp
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Also don't bother to set up a .get_acl method for symlinks as we do not
    support access control (ACLs or even mode bits) for symlinks in Linux,
    and create inodes with the proper mode instead of fixing it up later.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Dave Chinner
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Also don't bother to set up a .get_acl method for symlinks as we do not
    support access control (ACLs or even mode bits) for symlinks in Linux.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Jan Kara
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • This contains some major refactoring for the create path so that
    inodes are created with the right mode to start with instead of
    fixing it up later.

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

    Christoph Hellwig
     
  • Also don't bother to set up a .get_acl method for symlinks as we do not
    support access control (ACLs or even mode bits) for symlinks in Linux.

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

    Christoph Hellwig
     
  • Signed-off-by: Christoph Hellwig
    Reviewed-by: Vyacheslav Dubeyko
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • f2fs has some weird mode bit handling, so still using the old
    chmod code for now.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Jaegeuk Kim
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Signed-off-by: Christoph Hellwig
    Reviewed-by: Jan Kara
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Also don't bother to set up a .get_acl method for symlinks as we do not
    support access control (ACLs or even mode bits) for symlinks in Linux.

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

    Christoph Hellwig
     
  • Rename the current posix_acl_created to __posix_acl_create and add
    a fully featured helper to set up the ACLs on file creation that
    uses get_acl().

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Jan Kara
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Rename the current posix_acl_chmod to __posix_acl_chmod and add
    a fully featured ACL chmod helper that uses the ->set_acl inode
    operation.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Jan Kara
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • With the ->set_acl inode operation we can implement the Posix ACL
    xattr handlers in generic code instead of duplicating them all
    over the tree.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Jan Kara
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Factor out the code to get an ACL either from the inode or disk from
    check_acl, so that it can be used elsewhere later on.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Jan Kara
    Signed-off-by: Al Viro

    Christoph Hellwig