diff options
author | David Howells <dhowells@redhat.com> | 2009-11-19 13:11:45 -0500 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2009-11-19 13:11:45 -0500 |
commit | 60d543ca724be155c2b6166e36a00c80b21bd810 (patch) | |
tree | 90ec6edd77ddb7666dbf7069aa2e001f155cea49 /fs/fscache/object.c | |
parent | d461d26dde901b0523c46b0317e7fccf574a3933 (diff) |
FS-Cache: Start processing an object's operations on that object's death
Start processing an object's operations when that object moves into the DYING
state as the object cannot be destroyed until all its outstanding operations
have completed.
Furthermore, make sure that read and allocation operations handle being woken
up on a dead object. Such events are recorded in the Allocs.abt and
Retrvls.abt statistics as viewable through /proc/fs/fscache/stats.
The code for waiting for object activation for the read and allocation
operations is also extracted into its own function as it is much the same in
all cases, differing only in the stats incremented.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/fscache/object.c')
-rw-r--r-- | fs/fscache/object.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/fscache/object.c b/fs/fscache/object.c index 74bc562a2cbc..c85c9f582166 100644 --- a/fs/fscache/object.c +++ b/fs/fscache/object.c | |||
@@ -201,6 +201,7 @@ static void fscache_object_state_machine(struct fscache_object *object) | |||
201 | } | 201 | } |
202 | spin_unlock(&object->lock); | 202 | spin_unlock(&object->lock); |
203 | fscache_enqueue_dependents(object); | 203 | fscache_enqueue_dependents(object); |
204 | fscache_start_operations(object); | ||
204 | goto terminal_transit; | 205 | goto terminal_transit; |
205 | 206 | ||
206 | /* handle an abort during initialisation */ | 207 | /* handle an abort during initialisation */ |