diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-12-22 17:00:04 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-12-22 17:00:04 -0800 |
commit | 9efa3ed504edb1c1fc88dba96fd32168f50ab77c (patch) | |
tree | b41b035a77e0a738a2769a72aaaf1818961b64bd /fs/super.c | |
parent | Merge tag 'xfs-5.5-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux (diff) | |
parent | fs: call fsnotify_sb_delete after evict_inodes (diff) | |
download | linux-dev-9efa3ed504edb1c1fc88dba96fd32168f50ab77c.tar.xz linux-dev-9efa3ed504edb1c1fc88dba96fd32168f50ab77c.zip |
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs fixes from Al Viro:
"Eric's s_inodes softlockup fixes + Jan's fix for recent regression
from pipe rework"
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
fs: call fsnotify_sb_delete after evict_inodes
fs: avoid softlockups in s_inodes iterators
pipe: Fix bogus dereference in iov_iter_alignment()
Diffstat (limited to 'fs/super.c')
-rw-r--r-- | fs/super.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/super.c b/fs/super.c index cfadab2cbf35..cd352530eca9 100644 --- a/fs/super.c +++ b/fs/super.c @@ -448,10 +448,12 @@ void generic_shutdown_super(struct super_block *sb) sync_filesystem(sb); sb->s_flags &= ~SB_ACTIVE; - fsnotify_sb_delete(sb); cgroup_writeback_umount(); + /* evict all inodes with zero refcount */ evict_inodes(sb); + /* only nonzero refcount inodes can have marks */ + fsnotify_sb_delete(sb); if (sb->s_dio_done_wq) { destroy_workqueue(sb->s_dio_done_wq); |