Re: [PATCH] struct file cleanup : the very large file_ra_state is now allocated only on demand.
From: "David S. Miller" <davem@davemloft.net>
Date: 2005-08-18 07:19:26
Also in:
lkml
From: "David S. Miller" <davem@davemloft.net>
Date: 2005-08-18 07:19:26
Also in:
lkml
From: Eric Dumazet <redacted> Date: Thu, 18 Aug 2005 09:14:47 +0200
After reading your suggestions, I understand we still need two slabs. One (filp_cachep) without the readahead data, the other one (filp_ra_cachep) with it.
Correct.
static inline struct file_ra_state *get_ra_state(struct file *f)
{
#ifdef CONFIG_DEBUG_READAHEAD
BUG_ON(filp_ra_cachep != GET_PAGE_CACHE(virt_to_page(f)));
#endif
return (struct file_ra_state *)(f+1);
}Or, instead of mucking with SLAB internals, just put something like a "filp_ra_present" debugging binary state into filp while it gets debugged.