diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-03-27 23:21:18 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-03-27 23:26:01 -0400 |
commit | 82268da1b130f763d22d04f7d016bbf6fc8815c2 (patch) | |
tree | 9803f361556d10708313e980428e63a18162e667 /fs/notify/inotify/inotify.c | |
parent | 6e15cf04860074ad032e88c306bea656bbdd0f22 (diff) | |
parent | 5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a (diff) |
Merge branch 'linus' into percpu-cpumask-x86-for-linus-2
Conflicts:
arch/sparc/kernel/time_64.c
drivers/gpu/drm/drm_proc.c
Manual merge to resolve build warning due to phys_addr_t type change
on x86:
drivers/gpu/drm/drm_info.c
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'fs/notify/inotify/inotify.c')
-rw-r--r-- | fs/notify/inotify/inotify.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/notify/inotify/inotify.c b/fs/notify/inotify/inotify.c index 331f2e88e284..220c13f0d73d 100644 --- a/fs/notify/inotify/inotify.c +++ b/fs/notify/inotify/inotify.c | |||
@@ -380,6 +380,14 @@ void inotify_unmount_inodes(struct list_head *list) | |||
380 | struct list_head *watches; | 380 | struct list_head *watches; |
381 | 381 | ||
382 | /* | 382 | /* |
383 | * We cannot __iget() an inode in state I_CLEAR, I_FREEING, | ||
384 | * I_WILL_FREE, or I_NEW which is fine because by that point | ||
385 | * the inode cannot have any associated watches. | ||
386 | */ | ||
387 | if (inode->i_state & (I_CLEAR|I_FREEING|I_WILL_FREE|I_NEW)) | ||
388 | continue; | ||
389 | |||
390 | /* | ||
383 | * If i_count is zero, the inode cannot have any watches and | 391 | * If i_count is zero, the inode cannot have any watches and |
384 | * doing an __iget/iput with MS_ACTIVE clear would actually | 392 | * doing an __iget/iput with MS_ACTIVE clear would actually |
385 | * evict all inodes with zero i_count from icache which is | 393 | * evict all inodes with zero i_count from icache which is |
@@ -388,14 +396,6 @@ void inotify_unmount_inodes(struct list_head *list) | |||
388 | if (!atomic_read(&inode->i_count)) | 396 | if (!atomic_read(&inode->i_count)) |
389 | continue; | 397 | continue; |
390 | 398 | ||
391 | /* | ||
392 | * We cannot __iget() an inode in state I_CLEAR, I_FREEING, or | ||
393 | * I_WILL_FREE which is fine because by that point the inode | ||
394 | * cannot have any associated watches. | ||
395 | */ | ||
396 | if (inode->i_state & (I_CLEAR | I_FREEING | I_WILL_FREE)) | ||
397 | continue; | ||
398 | |||
399 | need_iput_tmp = need_iput; | 399 | need_iput_tmp = need_iput; |
400 | need_iput = NULL; | 400 | need_iput = NULL; |
401 | /* In case inotify_remove_watch_locked() drops a reference. */ | 401 | /* In case inotify_remove_watch_locked() drops a reference. */ |