diff options
| -rw-r--r-- | fs/eventpoll.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index b73e0621ce9e..b10b48c2a7af 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c | |||
| @@ -910,7 +910,7 @@ static const struct file_operations eventpoll_fops = { | |||
| 910 | void eventpoll_release_file(struct file *file) | 910 | void eventpoll_release_file(struct file *file) |
| 911 | { | 911 | { |
| 912 | struct eventpoll *ep; | 912 | struct eventpoll *ep; |
| 913 | struct epitem *epi; | 913 | struct epitem *epi, *next; |
| 914 | 914 | ||
| 915 | /* | 915 | /* |
| 916 | * We don't want to get "file->f_lock" because it is not | 916 | * We don't want to get "file->f_lock" because it is not |
| @@ -926,7 +926,7 @@ void eventpoll_release_file(struct file *file) | |||
| 926 | * Besides, ep_remove() acquires the lock, so we can't hold it here. | 926 | * Besides, ep_remove() acquires the lock, so we can't hold it here. |
| 927 | */ | 927 | */ |
| 928 | mutex_lock(&epmutex); | 928 | mutex_lock(&epmutex); |
| 929 | list_for_each_entry_rcu(epi, &file->f_ep_links, fllink) { | 929 | list_for_each_entry_safe(epi, next, &file->f_ep_links, fllink) { |
| 930 | ep = epi->ep; | 930 | ep = epi->ep; |
| 931 | mutex_lock_nested(&ep->mtx, 0); | 931 | mutex_lock_nested(&ep->mtx, 0); |
| 932 | ep_remove(ep, epi); | 932 | ep_remove(ep, epi); |
