![Dan Carpenter](/assets/img/avatar_default.png)
If "pool_id" is negative then it leads to a read before the start of the array. If "cli_id" is out of bounds then it leads to a NULL dereference of "cli". GCC would have warned about that bug except that we initialized the warning message away. Also it's better to put the parameter names into the function declaration in the .h file. It serves as a kind of documentation. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
|
|
/*
|
|
* zcache.h
|
|
*
|
|
* Copyright (c) 2012, Dan Magenheimer, Oracle Corp.
|
|
*/
|
|
|
|
#ifndef _ZCACHE_H_
|
|
#define _ZCACHE_H_
|
|
|
|
struct zcache_preload {
|
|
struct tmem_obj *obj;
|
|
struct tmem_objnode *objnodes[OBJNODE_TREE_MAX_PATH];
|
|
};
|
|
|
|
struct tmem_pool;
|
|
|
|
#define MAX_POOLS_PER_CLIENT 16
|
|
|
|
#define MAX_CLIENTS 16
|
|
#define LOCAL_CLIENT ((uint16_t)-1)
|
|
|
|
struct zcache_client {
|
|
struct tmem_pool *tmem_pools[MAX_POOLS_PER_CLIENT];
|
|
bool allocated;
|
|
atomic_t refcount;
|
|
};
|
|
|
|
extern struct tmem_pool *zcache_get_pool_by_id(uint16_t cli_id,
|
|
uint16_t poolid);
|
|
extern void zcache_put_pool(struct tmem_pool *pool);
|
|
|
|
extern int zcache_put_page(int, int, struct tmem_oid *,
|
|
uint32_t, void *,
|
|
unsigned int, bool, int);
|
|
extern int zcache_get_page(int, int, struct tmem_oid *, uint32_t,
|
|
void *, size_t *, bool, int);
|
|
extern int zcache_flush_page(int, int, struct tmem_oid *, uint32_t);
|
|
extern int zcache_flush_object(int, int, struct tmem_oid *);
|
|
extern void zcache_decompress_to_page(char *, unsigned int, struct page *);
|
|
|
|
#ifdef CONFIG_RAMSTER
|
|
extern void *zcache_pampd_create(char *, unsigned int, bool, int,
|
|
struct tmem_handle *);
|
|
int zcache_autocreate_pool(unsigned int cli_id, unsigned int pool_id, bool eph);
|
|
#endif
|
|
|
|
#define MAX_POOLS_PER_CLIENT 16
|
|
|
|
#define MAX_CLIENTS 16
|
|
#define LOCAL_CLIENT ((uint16_t)-1)
|
|
|
|
#endif /* _ZCACHE_H_ */
|