[RFC] delayed allocation for ext4 booked-page-flag.patch adds PG_booked bit to page->flags. it's used in delayed allocation to mark space is already reserved for page (including possible metadata) From: Alex Tomas --- Index: linux-2.6.21-rc7/include/linux/page-flags.h =================================================================== --- linux-2.6.21-rc7.orig/include/linux/page-flags.h 2007-04-17 18:04:17.000000000 -0700 +++ linux-2.6.21-rc7/include/linux/page-flags.h 2007-04-17 18:04:54.000000000 -0700 @@ -90,6 +90,7 @@ #define PG_reclaim 17 /* To be reclaimed asap */ #define PG_nosave_free 18 /* Used for system suspend/resume */ #define PG_buddy 19 /* Page is free, on buddy lists */ +#define PG_booked 20 /* Has blocks reserved on-disk */ /* PG_owner_priv_1 users should have descriptive aliases */ #define PG_checked PG_owner_priv_1 /* Used by some filesystems */ @@ -232,6 +233,10 @@ #define SetPageMappedToDisk(page) set_bit(PG_mappedtodisk, &(page)->flags) #define ClearPageMappedToDisk(page) clear_bit(PG_mappedtodisk, &(page)->flags) +#define PageBooked(page) test_bit(PG_booked, &(page)->flags) +#define SetPageBooked(page) set_bit(PG_booked, &(page)->flags) +#define ClearPageBooked(page) clear_bit(PG_booked, &(page)->flags) + #define PageReclaim(page) test_bit(PG_reclaim, &(page)->flags) #define SetPageReclaim(page) set_bit(PG_reclaim, &(page)->flags) #define ClearPageReclaim(page) clear_bit(PG_reclaim, &(page)->flags)