diff options
author | [email protected] <[email protected]> | 2010-06-24 13:02:14 +1000 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2010-06-29 10:38:22 -0700 |
commit | 57439f878afafefad8836ebf5c49da2a0a746105 (patch) | |
tree | ec11dd35704aa37d77a5fd8404fda57f297a3834 /tools/perf/util/trace-event-scripting.c | |
parent | 5904b3b81d25166e5e39b9727645bb47937618e3 (diff) |
fs: fix superblock iteration race
list_for_each_entry_safe is not suitable to protect against concurrent
modification of the list. 6754af6 introduced a race in sb walking.
list_for_each_entry can use the trick of pinning the current entry in
the list before we drop and retake the lock because it subsequently
follows cur->next. However list_for_each_entry_safe saves n=cur->next
for following before entering the loop body, so when the lock is
dropped, n may be deleted.
Signed-off-by: Nick Piggin <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: John Stultz <[email protected]>
Cc: Frank Mayhar <[email protected]>
Cc: Al Viro <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/util/trace-event-scripting.c')
0 files changed, 0 insertions, 0 deletions