From f37cadf5c83a8412b34f2ba5624e57434da48714 Mon Sep 17 00:00:00 2001 From: Bahadir Balban Date: Thu, 14 May 2009 13:07:10 +0300 Subject: [PATCH] File opener count was not decreased in vm_file_put --- tasks/mm0/src/file.c | 2 +- tasks/mm0/src/test.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tasks/mm0/src/file.c b/tasks/mm0/src/file.c index d92ebf8..0f0a2cc 100644 --- a/tasks/mm0/src/file.c +++ b/tasks/mm0/src/file.c @@ -510,7 +510,7 @@ int fsync_common(struct tcb *task, int fd) void vm_file_put(struct vm_file *file) { /* Reduce file's opener count */ - if (!(file->openers)) + if (!(file->openers--)) /* No openers left, check any mappers */ if (!file->vm_obj.nlinks) /* No links or openers, delete the file */ diff --git a/tasks/mm0/src/test.c b/tasks/mm0/src/test.c index c5c37bf..7d505cc 100644 --- a/tasks/mm0/src/test.c +++ b/tasks/mm0/src/test.c @@ -49,6 +49,10 @@ int vm_object_test_shadow_count(struct vm_object *vmo) return 0; } +/* TODO: + * Add checking that total open file descriptors are + * equal to total opener count of all files + */ int mm0_test_global_vm_integrity(void) { struct tcb *task;