* [PATCH] ext2/3 bugfix 1/6: Fix illegal sleep in mbcache.
@ 2002-11-07 3:58 tytso
0 siblings, 0 replies; only message in thread
From: tytso @ 2002-11-07 3:58 UTC (permalink / raw)
To: torvalds, linux-kernel
Fix illegal sleep in mbcache.
This patch from Andreas Gruenbacher fixes an illegal sleep trace.
mbcache.c | 27 +++++++++++++++------------
1 files changed, 15 insertions(+), 12 deletions(-)
diff -Nru a/fs/mbcache.c b/fs/mbcache.c
--- a/fs/mbcache.c Wed Nov 6 17:29:36 2002
+++ b/fs/mbcache.c Wed Nov 6 17:29:36 2002
@@ -324,14 +324,6 @@
goto fail;
spin_lock(&mb_cache_spinlock);
- if (list_empty(&mb_cache_list)) {
- if (mb_shrinker) {
- printk(KERN_ERR "%s: already have a shrinker!\n",
- __FUNCTION__);
- remove_shrinker(mb_shrinker);
- }
- mb_shrinker = set_shrinker(DEFAULT_SEEKS, mb_cache_shrink_fn);
- }
list_add(&cache->c_cache_list, &mb_cache_list);
spin_unlock(&mb_cache_spinlock);
return cache;
@@ -414,10 +406,6 @@
}
}
list_del(&cache->c_cache_list);
- if (list_empty(&mb_cache_list) && mb_shrinker) {
- remove_shrinker(mb_shrinker);
- mb_shrinker = 0;
- }
spin_unlock(&mb_cache_spinlock);
l = free_list.prev;
@@ -700,3 +688,18 @@
}
#endif /* !defined(MB_CACHE_INDEXES_COUNT) || (MB_CACHE_INDEXES_COUNT > 0) */
+
+static int __init init_mbcache(void)
+{
+ mb_shrinker = set_shrinker(DEFAULT_SEEKS, mb_cache_shrink_fn);
+ return 0;
+}
+
+static void __exit exit_mbcache(void)
+{
+ remove_shrinker(mb_shrinker);
+}
+
+module_init(init_mbcache)
+module_exit(exit_mbcache)
+
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-11-07 3:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-07 3:58 [PATCH] ext2/3 bugfix 1/6: Fix illegal sleep in mbcache tytso
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.