Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
/ 2004-07-24 15:08:48 +0200 \ Lars Marowsky-Bree: > On 2004-07-24T07:07:18, > Lars Marowsky-Bree <lmb at suse.de> said: > > > I also discussed this with Andrea and Chris Mason over dinner, and they > > basically said it's an XFS bug - pagecount() is a macro which ought to > > work correctly for slab pages too, however XFS is doing something funny. > > Please also bring this to attention at LKML. > > Oh. I just noticed, we are using page_count() and not pagecount(); the > second one should yield the right number for slab pages. However, I'm > mostly sure we still need special handling for the slab pages. > > page_count() will only yield the right number for the first part of a > split slab page and return 0 for any other one; the macro pagecount() > will yield that very number for all splits of a page. there is no such macro "pagecount" in my 2.6.6 (2.6.7) kernel.org ?? there only is page_count... from include/linux/mm.h * * Since 2.6.6 (approx), a free page has ->_count = -1. This is so that we * can use atomic_add_negative(-1, page->_count) to detect when the page * becomes free and so that we can also use atomic_inc_and_test to atomically * detect when we just tried to grab a ref on a page which some other CPU has * already deemed to be freeable. * * NO code should make assumptions about this internal detail! Use the provided * macros which retain the old rules: page_count(page) == 0 is a free page. */ so. what? Lars Ellenberg -- please use the "List-Reply" function of your email client.