Shuffle a little code around in slabinfo_write(), both for efficiency and
readability.
-Matt
Some cleanup for slabinfo_write():
* Move an if statement that clearly only needs to be evaluated once
above and outside the loop where it belongs.
* Move a second if statement into a loop, where it belongs.
Signed-off-by: Matthew Dobson <[email protected]>
Index: linux-2.6.14+slab_cleanup/mm/slab.c
===================================================================
--- linux-2.6.14+slab_cleanup.orig/mm/slab.c 2005-11-10 11:48:49.384347400 -0800
+++ linux-2.6.14+slab_cleanup/mm/slab.c 2005-11-10 11:49:19.028840752 -0800
@@ -3574,27 +3574,23 @@ ssize_t slabinfo_write(struct file *file
tmp++;
if (sscanf(tmp, " %d %d %d", &limit, &batchcount, &shared) != 3)
return -EINVAL;
+ if (limit < 1 || batchcount < 1 || batchcount > limit || shared < 0)
+ return 0;
/* Find the cache in the chain of caches. */
down(&cache_chain_sem);
res = -EINVAL;
list_for_each(p,&cache_chain) {
kmem_cache_t *cachep = list_entry(p, kmem_cache_t, next);
+ if (strcmp(cachep->name, kbuf))
+ continue;
- if (!strcmp(cachep->name, kbuf)) {
- if (limit < 1 || batchcount < 1 ||
- batchcount > limit || shared < 0) {
- res = 0;
- } else {
- res = do_tune_cpucache(cachep, limit,
- batchcount, shared);
- }
- break;
- }
+ res = do_tune_cpucache(cachep, limit, batchcount, shared);
+ if (res >= 0)
+ res = count;
+ break;
}
up(&cache_chain_sem);
- if (res >= 0)
- res = count;
return res;
}
#endif /* CONFIG_PROC_FS */
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]