Linux CM: Use kernel allocator directly

In another few locations within the Linux portion of the cache
manager, directly use the kernel allocator. We can do so here
because we can guarantee that the amount of memory being allocated
is less than the page size, and there is a kfree() in all of the
exit paths, so we don't need the magic freeing behaviour, either.

Reviewed-on: http://gerrit.openafs.org/4752
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 7a70c2907b0435653098a611a140fea1ac0b2fac)

Change-Id: I72fd6a2109022af5e14d90ce147705da7ccec587
Reviewed-on: http://gerrit.openafs.org/11933
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams <3chas3@gmail.com>
Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
This commit is contained in:
Simon Wilkinson 2011-04-17 23:43:51 +01:00 committed by Stephan Wiesand
parent d6b622833d
commit 602130f1de
2 changed files with 10 additions and 10 deletions

View File

@ -112,7 +112,7 @@ afs_fill_super(struct super_block *sb, void *data, int silent)
#endif
/* used for inodes backing_dev_info field, also */
afs_backing_dev_info = osi_Alloc(sizeof(struct backing_dev_info));
afs_backing_dev_info = kmalloc(sizeof(struct backing_dev_info), GFP_NOFS);
memset(afs_backing_dev_info, 0, sizeof(struct backing_dev_info));
#if defined(HAVE_LINUX_BDI_INIT)
bdi_init(afs_backing_dev_info);
@ -338,7 +338,7 @@ afs_put_super(struct super_block *sbp)
#if defined(HAVE_LINUX_BDI_INIT)
bdi_destroy(afs_backing_dev_info);
#endif
osi_Free(afs_backing_dev_info, sizeof(struct backing_dev_info));
kfree(afs_backing_dev_info);
AFS_GUNLOCK();
sbp->s_dev = 0;

View File

@ -1893,7 +1893,7 @@ static int afs_linux_follow_link(struct dentry *dentry, struct nameidata *nd)
int code;
char *name;
name = osi_Alloc(PATH_MAX);
name = kmalloc(PATH_MAX, GFP_NOFS);
if (!name) {
return -EIO;
}
@ -1915,9 +1915,9 @@ static void
afs_linux_put_link(struct dentry *dentry, struct nameidata *nd)
{
char *name = nd_get_link(nd);
if (name && !IS_ERR(name)) {
osi_Free(name, PATH_MAX);
}
if (name && !IS_ERR(name))
kfree(name);
}
#endif /* USABLE_KERNEL_PAGE_SYMLINK_CACHE */
@ -2174,8 +2174,8 @@ afs_linux_fillpage(struct file *fp, struct page *pp)
address = kmap(pp);
ClearPageError(pp);
auio = osi_Alloc(sizeof(struct uio));
iovecp = osi_Alloc(sizeof(struct iovec));
auio = kmalloc(sizeof(struct uio), GFP_NOFS);
iovecp = kmalloc(sizeof(struct iovec), GFP_NOFS);
setup_uio(auio, iovecp, (char *)address, offset, PAGE_SIZE, UIO_READ,
AFS_UIOSYS);
@ -2206,8 +2206,8 @@ afs_linux_fillpage(struct file *fp, struct page *pp)
kunmap(pp);
osi_Free(auio, sizeof(struct uio));
osi_Free(iovecp, sizeof(struct iovec));
kfree(auio);
kfree(iovecp);
crfree(credp);
return afs_convert_code(code);