mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 05:27:44 +00:00
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:
parent
d6b622833d
commit
602130f1de
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user