From 2f69698a5d903ecb664aab58302e346fddc4f709 Mon Sep 17 00:00:00 2001 From: Boaz Harrosh Date: Thu, 10 Feb 2011 15:01:20 -0800 Subject: [PATCH] --- yaml --- r: 233137 b: refs/heads/master c: d863b50ab01333659314c2034890cb76d9fdc3c7 h: refs/heads/master i: 233135: 5cae0d93fe318d4da215e711c06628e75cac4af7 v: v3 --- [refs] | 2 +- trunk/fs/super.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 2d95b6f46ae2..a736ebf6b268 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2dab597441667d6c04451a7dcf215241ad4c74f6 +refs/heads/master: d863b50ab01333659314c2034890cb76d9fdc3c7 diff --git a/trunk/fs/super.c b/trunk/fs/super.c index 74e149efed81..7e9dd4cc2c01 100644 --- a/trunk/fs/super.c +++ b/trunk/fs/super.c @@ -177,6 +177,11 @@ void deactivate_locked_super(struct super_block *s) struct file_system_type *fs = s->s_type; if (atomic_dec_and_test(&s->s_active)) { fs->kill_sb(s); + /* + * We need to call rcu_barrier so all the delayed rcu free + * inodes are flushed before we release the fs module. + */ + rcu_barrier(); put_filesystem(fs); put_super(s); } else {