09 Sep, 2017

1 commit

  • Introduce a new migration mode that allow to offload the copy to a device
    DMA engine. This changes the workflow of migration and not all
    address_space migratepage callback can support this.

    This is intended to be use by migrate_vma() which itself is use for thing
    like HMM (see include/linux/hmm.h).

    No additional per-filesystem migratepage testing is needed. I disables
    MIGRATE_SYNC_NO_COPY in all problematic migratepage() callback and i
    added comment in those to explain why (part of this patch). The commit
    message is unclear it should say that any callback that wish to support
    this new mode need to be aware of the difference in the migration flow
    from other mode.

    Some of these callbacks do extra locking while copying (aio, zsmalloc,
    balloon, ...) and for DMA to be effective you want to copy multiple
    pages in one DMA operations. But in the problematic case you can not
    easily hold the extra lock accross multiple call to this callback.

    Usual flow is:

    For each page {
    1 - lock page
    2 - call migratepage() callback
    3 - (extra locking in some migratepage() callback)
    4 - migrate page state (freeze refcount, update page cache, buffer
    head, ...)
    5 - copy page
    6 - (unlock any extra lock of migratepage() callback)
    7 - return from migratepage() callback
    8 - unlock page
    }

    The new mode MIGRATE_SYNC_NO_COPY:
    1 - lock multiple pages
    For each page {
    2 - call migratepage() callback
    3 - abort in all problematic migratepage() callback
    4 - migrate page state (freeze refcount, update page cache, buffer
    head, ...)
    } // finished all calls to migratepage() callback
    5 - DMA copy multiple pages
    6 - unlock all the pages

    To support MIGRATE_SYNC_NO_COPY in the problematic case we would need a
    new callback migratepages() (for instance) that deals with multiple
    pages in one transaction.

    Because the problematic cases are not important for current usage I did
    not wanted to complexify this patchset even more for no good reason.

    Link: http://lkml.kernel.org/r/20170817000548.32038-14-jglisse@redhat.com
    Signed-off-by: Jérôme Glisse
    Cc: Aneesh Kumar
    Cc: Balbir Singh
    Cc: Benjamin Herrenschmidt
    Cc: Dan Williams
    Cc: David Nellans
    Cc: Evgeny Baskakov
    Cc: Johannes Weiner
    Cc: John Hubbard
    Cc: Kirill A. Shutemov
    Cc: Mark Hairgrove
    Cc: Michal Hocko
    Cc: Paul E. McKenney
    Cc: Ross Zwisler
    Cc: Sherry Cheung
    Cc: Subhash Gutti
    Cc: Vladimir Davydov
    Cc: Bob Liu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jérôme Glisse
     

01 Aug, 2017

1 commit

  • This patch converts most of the in-kernel filesystems that do writeback
    out of the pagecache to report errors using the errseq_t-based
    infrastructure that was recently added. This allows them to report
    errors once for each open file description.

    Most filesystems have a fairly straightforward fsync operation. They
    call filemap_write_and_wait_range to write back all of the data and
    wait on it, and then (sometimes) sync out the metadata.

    For those filesystems this is a straightforward conversion from calling
    filemap_write_and_wait_range in their fsync operation to calling
    file_write_and_wait_range.

    Acked-by: Jan Kara
    Acked-by: Dave Kleikamp
    Signed-off-by: Jeff Layton

    Jeff Layton
     

15 Jul, 2017

2 commits

  • In low memory situations, page allocations for bulk read
    can kill applications for reclaiming memory, and print an
    failure message when allocations are failed.
    Because bulk read is just an optimization, we don't have
    to do these and can stop page allocations.

    Though this siutation happens rarely, add __GFP_NORETRY
    to prevent from excessive memory reclaim and killing
    applications, and __GFP_WARN to suppress this failure
    message.

    For this, Use readahead_gfp_mask for gfp flags when
    allocating pages.

    Signed-off-by: Hyunchul Lee
    Signed-off-by: Richard Weinberger

    Hyunchul Lee
     
  • We check the length already, no need to check later
    again for an empty string.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     

06 Jul, 2017

2 commits

  • Since only an open file can be mmap'ed, and we only allow open()ing an
    encrypted file when its key is available, there is no need to check for
    the key again before permitting each mmap().

    Signed-off-by: Eric Biggers
    Acked-by: Richard Weinberger
    Signed-off-by: Richard Weinberger

    Eric Biggers
     
  • Currently, filesystems allow truncate(2) on an encrypted file without
    the encryption key. However, it's impossible to correctly handle the
    case where the size being truncated to is not a multiple of the
    filesystem block size, because that would require decrypting the final
    block, zeroing the part beyond i_size, then encrypting the block.

    As other modifications to encrypted file contents are prohibited without
    the key, just prohibit truncate(2) as well, making it fail with ENOKEY.

    Signed-off-by: Eric Biggers
    Signed-off-by: Richard Weinberger

    Eric Biggers
     

09 May, 2017

1 commit

  • CURRENT_TIME_SEC is not y2038 safe. current_time() will be transitioned
    to use 64 bit time along with vfs in a separate patch. There is no plan
    to transition CURRENT_TIME_SEC to use y2038 safe time interfaces.

    current_time() returns timestamps according to the granularities set in
    the inode's super_block. The granularity check to call
    current_fs_time() or CURRENT_TIME_SEC is not required.

    Use current_time() directly to update inode timestamp. Use
    timespec_trunc during file system creation, before the first inode is
    created.

    Link: http://lkml.kernel.org/r/1491613030-11599-9-git-send-email-deepa.kernel@gmail.com
    Signed-off-by: Deepa Dinamani
    Reviewed-by: Arnd Bergmann
    Cc: Richard Weinberger
    Cc: Artem Bityutskiy
    Cc: Adrian Hunter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Deepa Dinamani
     

25 Feb, 2017

1 commit

  • ->fault(), ->page_mkwrite(), and ->pfn_mkwrite() calls do not need to
    take a vma and vmf parameter when the vma already resides in vmf.

    Remove the vma parameter to simplify things.

    [arnd@arndb.de: fix ARM build]
    Link: http://lkml.kernel.org/r/20170125223558.1451224-1-arnd@arndb.de
    Link: http://lkml.kernel.org/r/148521301778.19116.10840599906674778980.stgit@djiang5-desk3.ch.intel.com
    Signed-off-by: Dave Jiang
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Ross Zwisler
    Cc: Theodore Ts'o
    Cc: Darrick J. Wong
    Cc: Matthew Wilcox
    Cc: Dave Hansen
    Cc: Christoph Hellwig
    Cc: Jan Kara
    Cc: Dan Williams
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jiang
     

18 Dec, 2016

1 commit

  • …/linux/kernel/git/mszeredi/vfs

    Pull partial readlink cleanups from Miklos Szeredi.

    This is the uncontroversial part of the readlink cleanup patch-set that
    simplifies the default readlink handling.

    Miklos and Al are still discussing the rest of the series.

    * git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    vfs: make generic_readlink() static
    vfs: remove ".readlink = generic_readlink" assignments
    vfs: default to generic_readlink()
    vfs: replace calling i_op->readlink with vfs_readlink()
    proc/self: use generic_readlink
    ecryptfs: use vfs_get_link()
    bad_inode: add missing i_op initializers

    Linus Torvalds
     

13 Dec, 2016

4 commits


09 Dec, 2016

1 commit


12 Oct, 2016

1 commit

  • Pull UBI/UBIFS updates from Richard Weinberger:
    "This pull request contains:

    - Fixes for both UBI and UBIFS
    - overlayfs support (O_TMPFILE, RENAME_WHITEOUT/EXCHANGE)
    - Code refactoring for the upcoming MLC support"

    [ Ugh, we just got rid of the "rename2()" naming for the extended rename
    functionality. And this re-introduces it in ubifs with the cross-
    renaming and whiteout support.

    But rather than do any re-organizations in the merge itself, the
    naming can be cleaned up later ]

    * tag 'upstream-4.9-rc1' of git://git.infradead.org/linux-ubifs: (27 commits)
    UBIFS: improve function-level documentation
    ubifs: fix host xattr_len when changing xattr
    ubifs: Use move variable in ubifs_rename()
    ubifs: Implement RENAME_EXCHANGE
    ubifs: Implement RENAME_WHITEOUT
    ubifs: Implement O_TMPFILE
    ubi: Fix Fastmap's update_vol()
    ubi: Fix races around ubi_refill_pools()
    ubi: Deal with interrupted erasures in WL
    UBI: introduce the VID buffer concept
    UBI: hide EBA internals
    UBI: provide an helper to query LEB information
    UBI: provide an helper to check whether a LEB is mapped or not
    UBI: add an helper to check lnum validity
    UBI: simplify LEB write and atomic LEB change code
    UBI: simplify recover_peb() code
    UBI: move the global ech and vidh variables into struct ubi_attach_info
    UBI: provide helpers to allocate and free aeb elements
    UBI: fastmap: use ubi_io_{read, write}_data() instead of ubi_io_{read, write}()
    UBI: fastmap: use ubi_rb_for_each_entry() in unmap_peb()
    ...

    Linus Torvalds
     

11 Oct, 2016

1 commit

  • Pull vfs xattr updates from Al Viro:
    "xattr stuff from Andreas

    This completes the switch to xattr_handler ->get()/->set() from
    ->getxattr/->setxattr/->removexattr"

    * 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    vfs: Remove {get,set,remove}xattr inode operations
    xattr: Stop calling {get,set,remove}xattr inode operations
    vfs: Check for the IOP_XATTR flag in listxattr
    xattr: Add __vfs_{get,set,remove}xattr helpers
    libfs: Use IOP_XATTR flag for empty directory handling
    vfs: Use IOP_XATTR flag for bad-inode handling
    vfs: Add IOP_XATTR inode operations flag
    vfs: Move xattr_resolve_name to the front of fs/xattr.c
    ecryptfs: Switch to generic xattr handlers
    sockfs: Get rid of getxattr iop
    sockfs: getxattr: Fail with -EOPNOTSUPP for invalid attribute names
    kernfs: Switch to generic xattr handlers
    hfs: Switch to generic xattr handlers
    jffs2: Remove jffs2_{get,set,remove}xattr macros
    xattr: Remove unnecessary NULL attribute name check

    Linus Torvalds
     

08 Oct, 2016

1 commit


03 Oct, 2016

1 commit

  • Fix various inconsistencies in the documentation associated with various
    functions.

    In the case of fs/ubifs/lprops.c, the second parameter of
    ubifs_get_lp_stats was renamed from st to lst in commit 84abf972ccff
    ("UBIFS: add re-mount debugging checks")

    In the case of fs/ubifs/lpt_commit.c, the excess variables have never
    existed in the associated functions since the code was introduced into the
    kernel.

    The others appear to be straightforward typos.

    Issues detected using Coccinelle (http://coccinelle.lip6.fr/)

    Signed-off-by: Julia Lawall
    Signed-off-by: Richard Weinberger

    Julia Lawall
     

22 Sep, 2016

1 commit

  • inode_change_ok() will be resposible for clearing capabilities and IMA
    extended attributes and as such will need dentry. Give it as an argument
    to inode_change_ok() instead of an inode. Also rename inode_change_ok()
    to setattr_prepare() to better relect that it does also some
    modifications in addition to checks.

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

    Jan Kara
     

23 Jun, 2016

1 commit

  • During page migrations UBIFS might get confused
    and the following assert triggers:
    [ 213.480000] UBIFS assert failed in ubifs_set_page_dirty at 1451 (pid 436)
    [ 213.490000] CPU: 0 PID: 436 Comm: drm-stress-test Not tainted 4.4.4-00176-geaa802524636-dirty #1008
    [ 213.490000] Hardware name: Allwinner sun4i/sun5i Families
    [ 213.490000] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [ 213.490000] [] (show_stack) from [] (dump_stack+0x8c/0xa0)
    [ 213.490000] [] (dump_stack) from [] (ubifs_set_page_dirty+0x44/0x50)
    [ 213.490000] [] (ubifs_set_page_dirty) from [] (try_to_unmap_one+0x10c/0x3a8)
    [ 213.490000] [] (try_to_unmap_one) from [] (rmap_walk+0xb4/0x290)
    [ 213.490000] [] (rmap_walk) from [] (try_to_unmap+0x64/0x80)
    [ 213.490000] [] (try_to_unmap) from [] (migrate_pages+0x328/0x7a0)
    [ 213.490000] [] (migrate_pages) from [] (alloc_contig_range+0x168/0x2f4)
    [ 213.490000] [] (alloc_contig_range) from [] (cma_alloc+0x170/0x2c0)
    [ 213.490000] [] (cma_alloc) from [] (__alloc_from_contiguous+0x38/0xd8)
    [ 213.490000] [] (__alloc_from_contiguous) from [] (__dma_alloc+0x23c/0x274)
    [ 213.490000] [] (__dma_alloc) from [] (arm_dma_alloc+0x54/0x5c)
    [ 213.490000] [] (arm_dma_alloc) from [] (drm_gem_cma_create+0xb8/0xf0)
    [ 213.490000] [] (drm_gem_cma_create) from [] (drm_gem_cma_create_with_handle+0x1c/0xe8)
    [ 213.490000] [] (drm_gem_cma_create_with_handle) from [] (drm_gem_cma_dumb_create+0x3c/0x48)
    [ 213.490000] [] (drm_gem_cma_dumb_create) from [] (drm_ioctl+0x12c/0x444)
    [ 213.490000] [] (drm_ioctl) from [] (do_vfs_ioctl+0x3f4/0x614)
    [ 213.490000] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x34/0x5c)
    [ 213.490000] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x34)

    UBIFS is using PagePrivate() which can have different meanings across
    filesystems. Therefore the generic page migration code cannot handle this
    case correctly.
    We have to implement our own migration function which basically does a
    plain copy but also duplicates the page private flag.
    UBIFS is not a block device filesystem and cannot use buffer_migrate_page().

    Cc: stable@vger.kernel.org
    Signed-off-by: Kirill A. Shutemov
    [rw: Massaged changelog, build fixes, etc...]
    Signed-off-by: Richard Weinberger
    Acked-by: Christoph Hellwig

    Kirill A. Shutemov
     

19 May, 2016

1 commit

  • Pull remaining vfs xattr work from Al Viro:
    "The rest of work.xattr (non-cifs conversions)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    btrfs: Switch to generic xattr handlers
    ubifs: Switch to generic xattr handlers
    jfs: Switch to generic xattr handlers
    jfs: Clean up xattr name mapping
    gfs2: Switch to generic xattr handlers
    ceph: kill __ceph_removexattr()
    ceph: Switch to generic xattr handlers
    ceph: Get rid of d_find_alias in ceph_set_acl

    Linus Torvalds
     

18 May, 2016

1 commit

  • Ubifs internally uses special inodes for storing xattrs. Those inodes
    had NULL {get,set,remove}xattr inode operations before this change, so
    xattr operations on them would fail. The super block's s_xattr field
    would also apply to those special inodes. However, the inodes are not
    visible outside of ubifs, and so no xattr operations will ever be
    carried out on them anyway.

    Signed-off-by: Andreas Gruenbacher
    Reviewed-by: Richard Weinberger
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     

05 Apr, 2016

2 commits

  • Mostly direct substitution with occasional adjustment or removing
    outdated comments.

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Michal Hocko
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time
    ago with promise that one day it will be possible to implement page
    cache with bigger chunks than PAGE_SIZE.

    This promise never materialized. And unlikely will.

    We have many places where PAGE_CACHE_SIZE assumed to be equal to
    PAGE_SIZE. And it's constant source of confusion on whether
    PAGE_CACHE_* or PAGE_* constant should be used in a particular case,
    especially on the border between fs and mm.

    Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much
    breakage to be doable.

    Let's stop pretending that pages in page cache are special. They are
    not.

    The changes are pretty straight-forward:

    - << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> ;

    - >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> ;

    - PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};

    - page_cache_get() -> get_page();

    - page_cache_release() -> put_page();

    This patch contains automated changes generated with coccinelle using
    script below. For some reason, coccinelle doesn't patch header files.
    I've called spatch for them manually.

    The only adjustment after coccinelle is revert of changes to
    PAGE_CAHCE_ALIGN definition: we are going to drop it later.

    There are few places in the code where coccinelle didn't reach. I'll
    fix them manually in a separate patch. Comments and documentation also
    will be addressed with the separate patch.

    virtual patch

    @@
    expression E;
    @@
    - E << (PAGE_CACHE_SHIFT - PAGE_SHIFT)
    + E

    @@
    expression E;
    @@
    - E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT)
    + E

    @@
    @@
    - PAGE_CACHE_SHIFT
    + PAGE_SHIFT

    @@
    @@
    - PAGE_CACHE_SIZE
    + PAGE_SIZE

    @@
    @@
    - PAGE_CACHE_MASK
    + PAGE_MASK

    @@
    expression E;
    @@
    - PAGE_CACHE_ALIGN(E)
    + PAGE_ALIGN(E)

    @@
    expression E;
    @@
    - page_cache_get(E)
    + get_page(E)

    @@
    expression E;
    @@
    - page_cache_release(E)
    + put_page(E)

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Michal Hocko
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

23 Jan, 2016

1 commit

  • parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
    inode_foo(inode) being mutex_foo(&inode->i_mutex).

    Please, use those for access to ->i_mutex; over the coming cycle
    ->i_mutex will become rwsem, with ->lookup() done with it held
    only shared.

    Signed-off-by: Al Viro

    Al Viro
     

09 Dec, 2015

1 commit

  • new method: ->get_link(); replacement of ->follow_link(). The differences
    are:
    * inode and dentry are passed separately
    * might be called both in RCU and non-RCU mode;
    the former is indicated by passing it a NULL dentry.
    * when called that way it isn't allowed to block
    and should return ERR_PTR(-ECHILD) if it needs to be called
    in non-RCU mode.

    It's a flagday change - the old method is gone, all in-tree instances
    converted. Conversion isn't hard; said that, so far very few instances
    do not immediately bail out when called in RCU mode. That'll change
    in the next commits.

    Signed-off-by: Al Viro

    Al Viro
     

07 Nov, 2015

1 commit

  • To make ubifs support atime flexily, this commit introduces
    a Kconfig option named as UBIFS_ATIME_SUPPORT.

    With UBIFS_ATIME_SUPPORT=n:
    ubifs keeps the full compatibility to no_atime from
    the start of ubifs.

    =================UBIFS_ATIME_SUPPORT=n=======================
    -o - no atime
    -o atime - no atime
    -o noatime - no atime
    -o relatime - no atime
    -o strictatime - no atime
    -o lazyatime - no atime

    With UBIFS_ATIME_SUPPORT=y:
    ubifs supports the atime same with other main stream
    file systems.
    =================UBIFS_ATIME_SUPPORT=y=======================
    -o - default behavior (relatime currently)
    -o atime - atime support
    -o noatime - no atime support
    -o relatime - relative atime support
    -o strictatime - strict atime support
    -o lazyatime - lazy atime support

    Signed-off-by: Dongsheng Yang
    Reviewed-by: Richard Weinberger
    Signed-off-by: Richard Weinberger

    Dongsheng Yang
     

11 May, 2015

1 commit


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
     

16 Apr, 2015

2 commits

  • Pull UBI/UBIFS updates from Richard Weinberger:
    "This pull request includes the following UBI/UBIFS changes:

    - powercut emulation for UBI
    - a huge update to UBI Fastmap
    - cleanups and bugfixes all over UBI and UBIFS"

    * tag 'upstream-4.1-rc1' of git://git.infradead.org/linux-ubifs: (50 commits)
    UBI: power cut emulation for testing
    UBIFS: fix output format of INUM_WATERMARK
    UBI: Fastmap: Fall back to scanning mode after ECC error
    UBI: Fastmap: Remove is_fm_block()
    UBI: Fastmap: Add blank line after declarations
    UBI: Fastmap: Remove else after return.
    UBI: Fastmap: Introduce may_reserve_for_fm()
    UBI: Fastmap: Introduce ubi_fastmap_init()
    UBI: Fastmap: Wire up WL accessor functions
    UBI: Add accessor functions for WL data structures
    UBI: Move fastmap specific functions out of wl.c
    UBI: Fastmap: Add new module parameter fm_debug
    UBI: Fastmap: Make self_check_eba() depend on fastmap self checking
    UBI: Fastmap: Add self check to detect absent PEBs
    UBI: Fix stale pointers in ubi->lookuptbl
    UBI: Fastmap: Enhance fastmap checking
    UBI: Add initial support for fastmap self checks
    UBI: Fastmap: Rework fastmap error paths
    UBI: Fastmap: Prepare for variable sized fastmaps
    UBI: Fastmap: Locking updates
    ...

    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
     

12 Apr, 2015

1 commit

  • All places outside of core VFS that checked ->read and ->write for being NULL or
    called the methods directly are gone now, so NULL {read,write} with non-NULL
    {read,write}_iter will do the right thing in all cases.

    Signed-off-by: Al Viro

    Al Viro
     

26 Mar, 2015

1 commit


25 Mar, 2015

1 commit

  • In the case where we have more than one volumes on different UBI
    devices, it may be not that easy to tell which volume prints the
    messages. Add ubi number and volume id in ubifs_msg/warn/error
    to help debug. These two values are passed by struct ubifs_info.

    For those where ubifs_info is not initialized yet, ubifs_* is
    replaced by pr_*. For those where ubifs_info is not avaliable,
    ubifs_info is passed to the calling function as a const parameter.

    The output looks like,

    [ 95.444879] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 696
    [ 95.484688] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "test1"
    [ 95.484694] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [ 95.484699] UBIFS (ubi0:1): FS size: 30220288 bytes (28 MiB, 238 LEBs), journal size 1523712 bytes (1 MiB, 12 LEBs)
    [ 95.484703] UBIFS (ubi0:1): reserved for root: 1427378 bytes (1393 KiB)
    [ 95.484709] UBIFS (ubi0:1): media format: w4/r0 (latest is w4/r0), UUID 40DFFC0E-70BE-4193-8905-F7D6DFE60B17, small LPT model
    [ 95.489875] UBIFS (ubi1:0): background thread "ubifs_bgt1_0" started, PID 699
    [ 95.529713] UBIFS (ubi1:0): UBIFS: mounted UBI device 1, volume 0, name "test2"
    [ 95.529718] UBIFS (ubi1:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [ 95.529724] UBIFS (ubi1:0): FS size: 19808256 bytes (18 MiB, 156 LEBs), journal size 1015809 bytes (0 MiB, 8 LEBs)
    [ 95.529727] UBIFS (ubi1:0): reserved for root: 935592 bytes (913 KiB)
    [ 95.529733] UBIFS (ubi1:0): media format: w4/r0 (latest is w4/r0), UUID EEB7779D-F419-4CA9-811B-831CAC7233D4, small LPT model

    [ 954.264767] UBIFS error (ubi1:0 pid 756): ubifs_read_node: bad node type (255 but expected 6)
    [ 954.367030] UBIFS error (ubi1:0 pid 756): ubifs_read_node: bad node at LEB 0:0, LEB mapping status 1

    Signed-off-by: Sheng Yong
    Signed-off-by: Artem Bityutskiy

    Sheng Yong
     

16 Feb, 2015

1 commit

  • Pull UBI and UBIFS updates from Richard Weinberger:
    - cleanups and bug fixes all over UBI and UBIFS
    - block-mq support for UBI Block
    - UBI volumes can now be renamed while they are in use
    - security.* XATTR support for UBIFS
    - a maintainer update

    * 'for-linus-v3.20' of git://git.infradead.org/linux-ubifs:
    UBI: block: Fix checking for NULL instead of IS_ERR()
    UBI: block: Continue creating ubiblocks after an initialization error
    UBIFS: return -EINVAL if log head is empty
    UBI: Block: Explain usage of blk_rq_map_sg()
    UBI: fix soft lockup in ubi_check_volume()
    UBI: Fastmap: Care about the protection queue
    UBIFS: add a couple of extra asserts
    UBI: do propagate positive error codes up
    UBI: clean-up printing helpers
    UBI: extend UBI layer debug/messaging capabilities - cosmetics
    UBIFS: add ubifs_err() to print error reason
    UBIFS: Add security.* XATTR support for the UBIFS
    UBIFS: Add xattr support for symlinks
    UBI: Block: Add blk-mq support
    UBI: Add initial support for scatter gather
    UBI: rename_volumes: Use UBI_METAONLY
    UBI: Implement UBI_METAONLY
    Add myself as UBI co-maintainer

    Linus Torvalds
     

11 Feb, 2015

1 commit


28 Jan, 2015

1 commit


07 Nov, 2014

1 commit


13 Jun, 2014

1 commit

  • Pull vfs updates from Al Viro:
    "This the bunch that sat in -next + lock_parent() fix. This is the
    minimal set; there's more pending stuff.

    In particular, I really hope to get acct.c fixes merged this cycle -
    we need that to deal sanely with delayed-mntput stuff. In the next
    pile, hopefully - that series is fairly short and localized
    (kernel/acct.c, fs/super.c and fs/namespace.c). In this pile: more
    iov_iter work. Most of prereqs for ->splice_write with sane locking
    order are there and Kent's dio rewrite would also fit nicely on top of
    this pile"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (70 commits)
    lock_parent: don't step on stale ->d_parent of all-but-freed one
    kill generic_file_splice_write()
    ceph: switch to iter_file_splice_write()
    shmem: switch to iter_file_splice_write()
    nfs: switch to iter_splice_write_file()
    fs/splice.c: remove unneeded exports
    ocfs2: switch to iter_file_splice_write()
    ->splice_write() via ->write_iter()
    bio_vec-backed iov_iter
    optimize copy_page_{to,from}_iter()
    bury generic_file_aio_{read,write}
    lustre: get rid of messing with iovecs
    ceph: switch to ->write_iter()
    ceph_sync_direct_write: stop poking into iov_iter guts
    ceph_sync_read: stop poking into iov_iter guts
    new helper: copy_page_from_iter()
    fuse: switch to ->write_iter()
    btrfs: switch to ->write_iter()
    ocfs2: switch to ->write_iter()
    xfs: switch to ->write_iter()
    ...

    Linus Torvalds
     

12 Jun, 2014

1 commit

  • iter_file_splice_write() - a ->splice_write() instance that gathers the
    pipe buffers, builds a bio_vec-based iov_iter covering those and feeds
    it to ->write_iter(). A bunch of simple cases coverted to that...

    [AV: fixed the braino spotted by Cyrill]

    Signed-off-by: Al Viro

    Al Viro