Loading fs/btrfs/TODO +0 −5 Original line number Diff line number Diff line * cleanup, add more error checking, get rid of BUG_ONs * Make IO functions look more like the page cache * Fix ENOSPC handling * make a real mkfs and superblock * Do checksumming * Use a real check instead of mark_buffer_dirty * Define FS objects in terms of different item types * Add block mapping tree (simple dm layer) * Add simple tree locking (semaphore per tree) * Make allocator smarter * make level a field in header * add a block group to struct inode Loading fs/btrfs/ctree.c +1 −0 Original line number Diff line number Diff line Loading @@ -753,6 +753,7 @@ static int split_node(struct btrfs_trans_handle *trans, struct btrfs_root split_buffer = btrfs_alloc_free_block(trans, root); split = btrfs_buffer_node(split_buffer); btrfs_set_header_flags(&split->header, btrfs_header_flags(&c->header)); btrfs_set_header_level(&split->header, btrfs_header_level(&c->header)); btrfs_set_header_blocknr(&split->header, split_buffer->b_blocknr); btrfs_set_header_generation(&split->header, trans->transid); btrfs_set_header_parentid(&split->header, Loading fs/btrfs/ctree.h +3 −5 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ struct btrfs_header { __le32 ham; __le16 nritems; __le16 flags; /* generation flags to be added */ u8 level; } __attribute__ ((__packed__)); #define BTRFS_MAX_LEVEL 8 Loading Loading @@ -648,15 +648,13 @@ static inline void btrfs_set_header_flags(struct btrfs_header *h, u16 val) static inline int btrfs_header_level(struct btrfs_header *h) { return btrfs_header_flags(h) & (BTRFS_MAX_LEVEL - 1); return h->level; } static inline void btrfs_set_header_level(struct btrfs_header *h, int level) { u16 flags; BUG_ON(level > BTRFS_MAX_LEVEL); flags = btrfs_header_flags(h) & ~(BTRFS_MAX_LEVEL - 1); btrfs_set_header_flags(h, flags | level); h->level = level; } static inline int btrfs_is_leaf(struct btrfs_node *n) Loading Loading
fs/btrfs/TODO +0 −5 Original line number Diff line number Diff line * cleanup, add more error checking, get rid of BUG_ONs * Make IO functions look more like the page cache * Fix ENOSPC handling * make a real mkfs and superblock * Do checksumming * Use a real check instead of mark_buffer_dirty * Define FS objects in terms of different item types * Add block mapping tree (simple dm layer) * Add simple tree locking (semaphore per tree) * Make allocator smarter * make level a field in header * add a block group to struct inode Loading
fs/btrfs/ctree.c +1 −0 Original line number Diff line number Diff line Loading @@ -753,6 +753,7 @@ static int split_node(struct btrfs_trans_handle *trans, struct btrfs_root split_buffer = btrfs_alloc_free_block(trans, root); split = btrfs_buffer_node(split_buffer); btrfs_set_header_flags(&split->header, btrfs_header_flags(&c->header)); btrfs_set_header_level(&split->header, btrfs_header_level(&c->header)); btrfs_set_header_blocknr(&split->header, split_buffer->b_blocknr); btrfs_set_header_generation(&split->header, trans->transid); btrfs_set_header_parentid(&split->header, Loading
fs/btrfs/ctree.h +3 −5 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ struct btrfs_header { __le32 ham; __le16 nritems; __le16 flags; /* generation flags to be added */ u8 level; } __attribute__ ((__packed__)); #define BTRFS_MAX_LEVEL 8 Loading Loading @@ -648,15 +648,13 @@ static inline void btrfs_set_header_flags(struct btrfs_header *h, u16 val) static inline int btrfs_header_level(struct btrfs_header *h) { return btrfs_header_flags(h) & (BTRFS_MAX_LEVEL - 1); return h->level; } static inline void btrfs_set_header_level(struct btrfs_header *h, int level) { u16 flags; BUG_ON(level > BTRFS_MAX_LEVEL); flags = btrfs_header_flags(h) & ~(BTRFS_MAX_LEVEL - 1); btrfs_set_header_flags(h, flags | level); h->level = level; } static inline int btrfs_is_leaf(struct btrfs_node *n) Loading