* Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
*/
+#include <linux/config.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/time.h>
nlm_traverse_files(struct nlm_host *host, int action)
{
struct nlm_file *file, **fp;
- int i, ret = 0;
+ int i;
mutex_lock(&nlm_file_mutex);
for (i = 0; i < FILE_NRHASH; i++) {
fp = nlm_files + i;
while ((file = *fp) != NULL) {
- file->f_count++;
- mutex_unlock(&nlm_file_mutex);
-
/* Traverse locks, blocks and shares of this file
* and update file->f_locks count */
- if (nlm_inspect_file(host, file, action))
- ret = 1;
+ if (nlm_inspect_file(host, file, action)) {
+ mutex_unlock(&nlm_file_mutex);
+ return 1;
+ }
- mutex_lock(&nlm_file_mutex);
- file->f_count--;
/* No more references to this file. Let go of it. */
if (!file->f_blocks && !file->f_locks
&& !file->f_shares && !file->f_count) {
}
}
mutex_unlock(&nlm_file_mutex);
- return ret;
+ return 0;
}
/*