diff options
author | Ingo Molnar <mingo@elte.hu> | 2005-01-07 21:50:26 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-01-07 21:50:26 -0800 |
commit | 8f254b62810cb1333e24bbabd3cd64637ea5f5d3 (patch) | |
tree | da2290fad695d75e88fd8094c99b9853aca6e0b5 /fs | |
parent | e2e366589bea54b80fe5af6a412a9e7b308a22e1 (diff) | |
download | history-8f254b62810cb1333e24bbabd3cd64637ea5f5d3.tar.gz |
[PATCH] break latency in invalidate_list()
break latency in invalidate_list().
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/inode.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/inode.c b/fs/inode.c index 016962a47b0c68..b6066773ad8210 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -306,6 +306,14 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose) struct list_head * tmp = next; struct inode * inode; + /* + * We can reschedule here without worrying about the list's + * consistency because the per-sb list of inodes must not + * change during umount anymore, and because iprune_sem keeps + * shrink_icache_memory() away. + */ + cond_resched_lock(&inode_lock); + next = next->next; if (tmp == head) break; |