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
     

21 Mar, 2016

2 commits

  • UBIFS does not support POSIX ACLs, so there is no need for including any
    POSIX ACL hesders.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Richard Weinberger

    Andreas Gruenbacher
     
  • The existing logging macros are fairly large and converting the
    macros to functions make the object code smaller.

    Use %pV and __builtin_return_address(0) as appropriate.

    $ size fs/ubifs/built-in.o*
    text data bss dec hex filename
    575831 309688 161312 1046831 ff92f fs/ubifs/built-in.o.allyesconfig.new
    622457 312872 161120 1096449 10bb01 fs/ubifs/built-in.o.allyesconfig.old
    223785 640 644 225069 36f2d fs/ubifs/built-in.o.defconfig.new
    251873 640 644 253157 3dce5 fs/ubifs/built-in.o.defconfig.old

    Signed-off-by: Joe Perches
    Signed-off-by: Richard Weinberger

    Joe Perches
     

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
     

15 Jan, 2016

1 commit

  • Mark those kmem allocations that are known to be easily triggered from
    userspace as __GFP_ACCOUNT/SLAB_ACCOUNT, which makes them accounted to
    memcg. For the list, see below:

    - threadinfo
    - task_struct
    - task_delay_info
    - pid
    - cred
    - mm_struct
    - vm_area_struct and vm_region (nommu)
    - anon_vma and anon_vma_chain
    - signal_struct
    - sighand_struct
    - fs_struct
    - files_struct
    - fdtable and fdtable->full_fds_bits
    - dentry and external_name
    - inode for all filesystems. This is the most tedious part, because
    most filesystems overwrite the alloc_inode method.

    The list is far from complete, so feel free to add more objects.
    Nevertheless, it should be close to "account everything" approach and
    keep most workloads within bounds. Malevolent users will be able to
    breach the limit, but this was possible even with the former "account
    everything" approach (simply because it did not account everything in
    fact).

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Tejun Heo
    Cc: Greg Thelen
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     

13 Jan, 2016

1 commit


10 Jan, 2016

2 commits


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
     

14 Nov, 2015

2 commits

  • Pull vfs xattr cleanups from Al Viro.

    * 'for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    f2fs: xattr simplifications
    squashfs: xattr simplifications
    9p: xattr simplifications
    xattr handlers: Pass handler to operations instead of flags
    jffs2: Add missing capability check for listing trusted xattrs
    hfsplus: Remove unused xattr handler list operations
    ubifs: Remove unused security xattr handler
    vfs: Fix the posix_acl_xattr_list return value
    vfs: Check attribute names in posix acl xattr handers

    Linus Torvalds
     
  • Ubifs installs a security xattr handler in sb->s_xattr but doesn't use the
    generic_{get,set,list,remove}xattr inode operations needed for processing
    this list of attribute handlers; the handler is never called. Instead,
    ubifs uses its own xattr handlers which also process security xattrs.

    Remove the dead code.

    Signed-off-by: Andreas Gruenbacher
    Reviewed-by: Richard Weinberger
    Cc: Artem Bityutskiy
    Cc: Adrian Hunter
    Cc: linux-mtd@lists.infradead.org
    Cc: Subodh Nijsure
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     

11 Nov, 2015

1 commit

  • Pull UBI/UBIFS updates from Richard Weinberger:

    - access time support for UBIFS by Dongsheng Yang

    - random cleanups and bug fixes all over the place

    * tag 'upstream-4.4-rc1' of git://git.infradead.org/linux-ubifs:
    ubifs: introduce UBIFS_ATIME_SUPPORT to ubifs
    ubifs: make ubifs_[get|set]xattr atomic
    UBIFS: Delete unnecessary checks before the function call "iput"
    UBI: Remove in vain semicolon
    UBI: Fastmap: Fix PEB array type
    UBIFS: Fix possible memory leak in ubifs_readdir()
    fs/ubifs: remove unnecessary new_valid_dev check
    ubi: fastmap: Implement produce_free_peb()
    UBIFS: print verbose message when rescanning a corrupted node
    UBIFS: call dbg_is_power_cut() instead of reading c->dbg->pc_happened
    UBI: drop null test before destroy functions
    UBI: Update comments to reflect UBI_METAONLY flag
    UBI: Fix debug message
    UBI: Fix typo in comment
    UBI: Fastmap: Simplify expression
    UBIFS: fix a typo in comment of ubifs_budget_req
    UBIFS: use kmemdup rather than duplicating its implementation

    Linus Torvalds
     

07 Nov, 2015

5 commits

  • 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
     
  • This commit make the ubifs_[get|set]xattr protected by ui_mutex.

    Originally, there is a possibility that ubifs_getxattr to get
    a wrong value.

    P1 P2
    ---------- ----------
    ubifs_getxattr ubifs_setxattr
    - kfree()
    - memcpy()
    - kmemdup()

    Then ubifs_getxattr() would get a non-sense data. To solve this
    problem, this commit make the xattr of ubifs_inode updated in
    atomic.

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

    Dongsheng Yang
     
  • The iput() function tests whether its argument is NULL and then
    returns immediately. Thus the test around the call is not needed.

    This issue was detected by using the Coccinelle software.

    Signed-off-by: Markus Elfring
    Signed-off-by: Richard Weinberger

    Markus Elfring
     
  • If ubifs_tnc_next_ent() returns something else than -ENOENT
    we leak file->private_data.

    Signed-off-by: Richard Weinberger
    Reviewed-by: David Gstir

    Richard Weinberger
     
  • As currently new_valid_dev always returns 1, so new_valid_dev check is not
    needed, remove it.

    Signed-off-by: Yaowei Bai
    Reviewed-by: Richard Weinberger
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: Richard Weinberger

    Yaowei Bai
     

04 Oct, 2015

4 commits


29 Sep, 2015

1 commit

  • Fixes the following lockdep splat:
    [ 1.244527] =============================================
    [ 1.245193] [ INFO: possible recursive locking detected ]
    [ 1.245193] 4.2.0-rc1+ #37 Not tainted
    [ 1.245193] ---------------------------------------------
    [ 1.245193] cp/742 is trying to acquire lock:
    [ 1.245193] (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [] ubifs_init_security+0x29/0xb0
    [ 1.245193]
    [ 1.245193] but task is already holding lock:
    [ 1.245193] (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [] path_openat+0x3af/0x1280
    [ 1.245193]
    [ 1.245193] other info that might help us debug this:
    [ 1.245193] Possible unsafe locking scenario:
    [ 1.245193]
    [ 1.245193] CPU0
    [ 1.245193] ----
    [ 1.245193] lock(&sb->s_type->i_mutex_key#9);
    [ 1.245193] lock(&sb->s_type->i_mutex_key#9);
    [ 1.245193]
    [ 1.245193] *** DEADLOCK ***
    [ 1.245193]
    [ 1.245193] May be due to missing lock nesting notation
    [ 1.245193]
    [ 1.245193] 2 locks held by cp/742:
    [ 1.245193] #0: (sb_writers#5){.+.+.+}, at: [] mnt_want_write+0x1f/0x50
    [ 1.245193] #1: (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [] path_openat+0x3af/0x1280
    [ 1.245193]
    [ 1.245193] stack backtrace:
    [ 1.245193] CPU: 2 PID: 742 Comm: cp Not tainted 4.2.0-rc1+ #37
    [ 1.245193] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140816_022509-build35 04/01/2014
    [ 1.245193] ffffffff8252d530 ffff88007b023a38 ffffffff814f6f49 ffffffff810b56c5
    [ 1.245193] ffff88007c30cc80 ffff88007b023af8 ffffffff810a150d ffff88007b023a68
    [ 1.245193] 000000008101302a ffff880000000000 00000008f447e23f ffffffff8252d500
    [ 1.245193] Call Trace:
    [ 1.245193] [] dump_stack+0x4c/0x65
    [ 1.245193] [] ? console_unlock+0x1c5/0x510
    [ 1.245193] [] __lock_acquire+0x1a6d/0x1ea0
    [ 1.245193] [] ? __lock_is_held+0x58/0x80
    [ 1.245193] [] lock_acquire+0xd3/0x270
    [ 1.245193] [] ? ubifs_init_security+0x29/0xb0
    [ 1.245193] [] mutex_lock_nested+0x6b/0x3a0
    [ 1.245193] [] ? ubifs_init_security+0x29/0xb0
    [ 1.245193] [] ? ubifs_init_security+0x29/0xb0
    [ 1.245193] [] ubifs_init_security+0x29/0xb0
    [ 1.245193] [] ubifs_create+0xa6/0x1f0
    [ 1.245193] [] ? path_openat+0x3af/0x1280
    [ 1.245193] [] vfs_create+0x95/0xc0
    [ 1.245193] [] path_openat+0x7cc/0x1280
    [ 1.245193] [] ? __lock_acquire+0x543/0x1ea0
    [ 1.245193] [] ? sched_clock_cpu+0x90/0xc0
    [ 1.245193] [] ? calc_global_load_tick+0x60/0x90
    [ 1.245193] [] ? sched_clock_cpu+0x90/0xc0
    [ 1.245193] [] ? __alloc_fd+0xaf/0x180
    [ 1.245193] [] do_filp_open+0x75/0xd0
    [ 1.245193] [] ? _raw_spin_unlock+0x26/0x40
    [ 1.245193] [] ? __alloc_fd+0xaf/0x180
    [ 1.245193] [] do_sys_open+0x129/0x200
    [ 1.245193] [] SyS_open+0x19/0x20
    [ 1.245193] [] entry_SYSCALL_64_fastpath+0x12/0x6f

    While the lockdep splat is a false positive, becuase path_openat holds i_mutex
    of the parent directory and ubifs_init_security() tries to acquire i_mutex
    of a new inode, it reveals that taking i_mutex in ubifs_init_security() is
    in vain because it is only being called in the inode allocation path
    and therefore nobody else can see the inode yet.

    Cc: stable@vger.kernel.org # 3.20-
    Reported-and-tested-by: Boris Brezillon
    Reviewed-and-tested-by: Dongsheng Yang
    Signed-off-by: Richard Weinberger
    Signed-off-by: dedekind1@gmail.com

    Richard Weinberger
     

26 Jun, 2015

1 commit

  • Pull UBI/UBIFS updates from Richard Weinberger:
    "Minor fixes for UBI and UBIFS"

    * tag 'upstream-4.2-rc1' of git://git.infradead.org/linux-ubifs:
    UBI: Remove unnecessary `\'
    UBI: Use static class and attribute groups
    UBI: add a helper function for updatting on-flash layout volumes
    UBI: Fastmap: Do not add vol if it already exists
    UBI: Init vol->reserved_pebs by assignment
    UBI: Fastmap: Rename variables to make them meaningful
    UBI: Fastmap: Remove unnecessary `\'
    UBI: Fastmap: Use max() to get the larger value
    ubifs: fix to check error code of register_shrinker
    UBI: block: Dynamically allocate minor numbers

    Linus Torvalds
     

02 Jun, 2015

1 commit

  • register_shrinker() in ubifs_init() can fail due to fail to call kzalloc.
    This patch fixes to check the return value of register_shrinker, otherwise
    our shrinker may be unregistered after ubifs initialized successfully.

    Signed-off-by: Chao Yu
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: Richard Weinberger

    Chao Yu
     

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
     

13 Apr, 2015

1 commit

  • The INUM_WATERMARK is a unsigned 32bit value, `%d' prints it as negatave:
    [ 103.682255] UBIFS warning (ubi0:0 pid 691): ubifs_new_inode: running out of inode numbers (current 122763, max -256)

    Fix it as:
    [ 154.422940] UBIFS warning (ubi0:0 pid 688): ubifs_new_inode: running out of inode numbers (current 122765, max 4294967040)

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

    Sheng Yong
     

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

5 commits

  • 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
     
  • Directly return recover_head() and ubifs_leb_unmap()
    instead of storing value in err and testing it.

    Signed-off-by: Fabian Frederick
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Artem Bityutskiy

    Fabian Frederick
     
  • Change 'comress' to 'compress'
    Change 'inteval' to 'interval'
    Change 'disabe' to 'disable'
    Change 'nenver' to 'never'

    Signed-off-by: Yannick Guerrini
    Signed-off-by: Artem Bityutskiy

    Yannick Guerrini
     
  • The commits 781c571 ("UBIFS: intialize LPT earlier") and 0980119 ("UBIFS:
    fix-up free space earlier") move some initialization before marking the
    master node dirty. But the modification changes the conditions of writing
    master.

    If unclean umount happens, ubifs may fail when mounting. But trying to
    mount it will write new master nodes on the flash. This is useless but
    increasing sqnum. So check need_recovery before writing master node, and
    don't create new master node if filesystem needs recovery.

    The behavour of the bug shows at:
    http://lists.infradead.org/pipermail/linux-mtd/2015-February/057712.html

    Signed-off-by: Sheng Yong
    Reviewed-by: Ben Gardiner
    Signed-off-by: Artem Bityutskiy

    Sheng Yong
     
  • When ubifs_init_security() fails, 'ui_mutex' is incorrectly
    unlocked and incorrectly restores 'i_size'. Fix this.

    Signed-off-by: Taesoo Kim
    Fixes: d7f0b70d30ff ("UBIFS: Add security.* XATTR support for the UBIFS")
    Reviewed-by: Ben Shelton
    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Artem Bityutskiy

    Taesoo Kim
     

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
     

13 Feb, 2015

1 commit

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

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

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

    Linus Torvalds
     

11 Feb, 2015

1 commit