diff options
author | Boaz Harrosh <[email protected]> | 2011-02-10 15:01:20 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2011-02-11 16:12:19 -0800 |
commit | d863b50ab01333659314c2034890cb76d9fdc3c7 (patch) | |
tree | 88d27ed4717bb49ba696f2efb5ef024388412af3 /drivers/scsi/mpt2sas/mpi/mpi2_raid.h | |
parent | 2dab597441667d6c04451a7dcf215241ad4c74f6 (diff) |
vfs: call rcu_barrier after ->kill_sb()
In commit fa0d7e3de6d6 ("fs: icache RCU free inodes"), we use rcu free
inode instead of freeing the inode directly. It causes a crash when we
rmmod immediately after we umount the volume[1].
So we need to call rcu_barrier after we kill_sb so that the inode is
freed before we do rmmod. The idea is inspired by Aneesh Kumar.
rcu_barrier will wait for all callbacks to end before preceding. The
original patch was done by Tao Ma, but synchronize_rcu() is not enough
here.
1. http://marc.info/?l=linux-fsdevel&m=129680863330185&w=2
Tested-by: Tao Ma <[email protected]>
Signed-off-by: Boaz Harrosh <[email protected]>
Cc: Nick Piggin <[email protected]>
Cc: Al Viro <[email protected]>
Cc: Chris Mason <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_raid.h')
0 files changed, 0 insertions, 0 deletions