From: Al Viro <viro@ZenIV.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: [git pull] vfs pile 1
Date: Sun, 6 Sep 2015 03:55:04 +0100 [thread overview]
Message-ID: <20150906025504.GH22011@ZenIV.linux.org.uk> (raw)
In this one: d_move fixes (Eric), UFS fixes (me; locking is mostly sane
now, a bunch of bugs in error handling ought to be fixed), switch of sb_writers
to percpu rwsem (Oleg), superblock scalability (Josef and Dave), swapon(2) race
fix (Hugh). Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Shortlog:
Al Viro (47):
ufs: kill more lock_ufs() calls
ufs: switch ufs_evict_inode() to trimmed-down variant of ufs_truncate()
ufs: free excessive blocks upon ->write_begin() failure/short copy
ufs: move truncate_setsize() down into ufs_truncate()
ufs: move lock_ufs() down into __ufs_truncate_blocks()
ufs: bforget() indirect blocks before freeing them
ufs: don't use lock_ufs() for block pointers tree protection
ufs: kill lock_ufs()
ufs: ufs_trunc_direct() always returns 0
ufs: ufs_trunc_...() has exclusion with everything that might cause allocations
ufs: no retries are needed on truncate
ufs: move truncate code into inode.c
ufs: the offsets ufs_block_to_path() puts into array are not sector_t
ufs: beginning of __ufs_truncate_block() massage
ufs_trunc_tindirect(): pass the number of blocks to keep
ufs_trunc_indirect(): pass the index of the first pointer to free
ufs_trunc_dindirect(): pass the number of blocks to keep
__ufs_truncate(); find cutoff distances into branches by offsets[] array
ufs_trunc_...indirect(): pass the array of indices instead of offsets
ufs_trunc_..indirect(): more massage towards unifying
unify ufs_trunc_..indirect()
__ufs_truncate_blocks(): unify freeing the full branches
__ufs_trunc_blocks(): turn the part after switch into a loop
ufs_trunc_branch(): never call with offsets != NULL && depth2 == 0
ufs_trunc_branch(): separate the calls with non-NULL offsets
ufs: unify the logics for collecting adjacent data blocks to free
split ufs_truncate_branch() into full- and partial-branch variants
ufs_trunc_branch(): massage towards killing recursion
ufs_trunc_branch(): kill recursion
free_full_branch(): saner calling conventions
move marking inode dirty to the end of __ufs_truncate_blocks()
free_full_branch(): don't bother modifying the block we are going to free
__ufs_truncate_blocks(): avoid excessive dirtying of indirect blocks
ufs_inode_get{frag,block}(): get rid of retries
ufs: move calculation of offsets into ufs_getfrag_block()
ufs: use the branch depth in ufs_getfrag_block()
ufs_inode_get{frag,block}(): consolidate success exits
ufs_getfrag_block(): get rid of macro jungles
ufs_inode_get{frag,block}(): leave sb_getblk() to caller
ufs_inode_getblock(): pass index instead of 'fragment'
ufs_inode_getblock(): pass indirect block number and full index
ufs_inode_getfrag(): split extending the partial blocks off
ufs_inode_getfrag(): pass index instead of 'fragment'
ufs_getfrag_block(): turn following indirects into a loop
ufs_inode_getblock(): failure to read an indirect block is -EIO
ufs_getfrag_block(): tidy up a bit
ufs_inode_get{frag,block}(): get rid of 'phys' argument
Dave Chinner (4):
writeback: plug writeback at a high level
inode: convert inode_sb_list_lock to per-sb
sync: serialise per-superblock sync operations
inode: rename i_wb_list to i_io_list
Eric W. Biederman (3):
dcache: Handle escaped paths in prepend_path
dcache: Reduce the scope of i_lock in d_splice_alias
vfs: Test for and handle paths that are unreachable from their mnt_root
Hugh Dickins (1):
mm: fix potential data race in SyS_swapon
Josef Bacik (2):
inode: add hlist_fake to avoid the inode hash lock in evict
inode: don't softlockup when evicting inodes
Oleg Nesterov (8):
introduce __sb_writers_{acquired,release}() helpers
fix the broken lockdep logic in __sb_start_write()
document rwsem_release() in sb_wait_write()
percpu-rwsem: introduce percpu_down_read_trylock()
percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire()
percpu-rwsem: kill CONFIG_PERCPU_RWSEM
shift percpu_counter_destroy() into destroy_super_work()
change sb_writers to use percpu_rw_semaphore
Diffstat:
arch/Kconfig | 1 -
fs/block_dev.c | 12 +-
fs/btrfs/transaction.c | 8 +-
fs/dcache.c | 14 +-
fs/drop_caches.c | 10 +-
fs/fs-writeback.c | 72 +--
fs/inode.c | 50 ++-
fs/internal.h | 3 +-
fs/namei.c | 27 +-
fs/notify/inode_mark.c | 20 +-
fs/quota/dquot.c | 16 +-
fs/super.c | 175 ++++----
fs/ufs/Makefile | 2 +-
fs/ufs/balloc.c | 4 +
fs/ufs/inode.c | 948 ++++++++++++++++++++++++++-------------
fs/ufs/super.c | 36 +-
fs/ufs/truncate.c | 523 ---------------------
fs/ufs/ufs.h | 13 +-
fs/xfs/xfs_aops.c | 6 +-
include/linux/fs.h | 33 +-
include/linux/fsnotify_backend.h | 4 +-
include/linux/list.h | 5 +
include/linux/percpu-rwsem.h | 20 +
init/Kconfig | 1 -
kernel/locking/Makefile | 3 +-
kernel/locking/percpu-rwsem.c | 13 +
lib/Kconfig | 3 -
mm/backing-dev.c | 8 +-
mm/swapfile.c | 25 +-
29 files changed, 936 insertions(+), 1119 deletions(-)
delete mode 100644 fs/ufs/truncate.c
next reply other threads:[~2015-09-06 2:55 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-06 2:55 Al Viro [this message]
2015-09-09 9:16 ` [PATCH] fix ufs write vs. readpage race when writing into a hole Al Viro
-- strict thread matches above, loose matches on Subject: below --
2018-06-04 0:59 [git pull] vfs, pile 1 Al Viro
2016-12-16 13:30 [git pull] vfs " Al Viro
2015-06-22 6:47 Al Viro
2015-06-22 6:47 ` Al Viro
2014-01-27 14:25 Al Viro
2014-01-27 23:05 ` Stephen Rothwell
2014-01-29 3:26 ` Linus Torvalds
2014-01-29 13:37 ` Jan Kara
2014-01-30 2:02 ` Kim Jaegeuk
2014-01-30 15:26 ` Jan Kara
2014-01-30 13:07 ` Christoph Hellwig
2013-02-27 3:24 Al Viro
2012-03-21 3:31 Al Viro
2012-01-05 2:23 Al Viro
2012-01-08 23:04 ` Linus Torvalds
2012-01-08 23:50 ` Al Viro
2012-01-08 23:53 ` Al Viro
2012-01-09 0:11 ` Linus Torvalds
2012-01-09 0:25 ` Al Viro
2012-01-09 0:39 ` Linus Torvalds
2012-01-09 0:39 ` Linus Torvalds
2012-01-09 2:12 ` Al Viro
2012-01-09 15:11 ` Ted Ts'o
2012-01-11 11:58 ` Christoph Hellwig
2012-01-11 12:36 ` Miklos Szeredi
2012-01-11 12:40 ` Christoph Hellwig
2012-01-11 13:12 ` Miklos Szeredi
2012-01-11 15:23 ` Ted Ts'o
2012-01-11 16:19 ` Al Viro
2012-01-12 11:41 ` Miklos Szeredi
2011-05-26 11:53 Al Viro
2011-01-13 5:35 Al Viro
2011-01-13 6:25 ` Stephen Rothwell
2011-01-13 8:55 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150906025504.GH22011@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.