[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.22-rc1/include/linux/page-flags.h =================================================================== --- linux-2.6.22-rc1.orig/include/linux/page-flags.h 2007-05-12 18:45:56.000000000 -0700 +++ linux-2.6.22-rc1/include/linux/page-flags.h 2007-05-15 16:26:01.000000000 -0700 @@ -89,6 +89,7 @@ #define PG_mappedtodisk 16 /* Has blocks allocated on-disk */ #define PG_reclaim 17 /* To be reclaimed asap */ #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 */ @@ -221,6 +222,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)