Btrfs: New inode number allocator
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest7 patches 4 repliesIn review
- v17 patches 0 repliesSuperseded
Changes in v2 from the cover letter
- Rebased against latest btrfs-unstable tree
- Fixed several small bugs.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | Btrfs: Remove unused btrfs_block_group_free_space()fs/ fs/ | +0 | 0 replies | |
| 2/7 | Btrfs: Use bitmap_set/clear()fs/ | +8 | 0 replies | |
| 3/7 | Btrfs: Make free space cache code genericfs/ fs/ fs/ +1 more | +271 | 0 replies | |
| 4/7 | Btrfs: Cache free inode numbers in memoryfs/ fs/ fs/ +7 more | +500 | 0 replies | |
| 5/7 | Btrfs: Make the code for reading/writing free space cache genericfs/ | +204 | 0 replies | |
| 6/7 | Btrfs: Always use 64bit inode numberfs/ fs/ fs/ +10 more | +208 | 0 replies | |
| 7/7 | Btrfs: Support reading/writing on disk free ino cachefs/ fs/ fs/ +6 more | +236 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 0/7] Btrfs: New inode number allocator
Currently btrfs stores the highest objectid of the fs tree, and it always returns (highest+1) inode number when we create a file, so inode numbers won't be reclaimed when we delete files, so we'll run out of inode numbers as we keep create/delete files in 32bits machines.
This patchset aims to fix this, and it works similar to free space caching for block groups.
I've run xfstests, and I also tested it with snapshot, balance etc.
More testing is appreciated!
Changelog v2:
- Rebased against latest btrfs-unstable tree
- Fixed several small bugs.
--- fs/btrfs/btrfs_inode.h | 9 + fs/btrfs/compression.c | 5 +- fs/btrfs/ctree.h | 29 +- fs/btrfs/disk-io.c | 19 + fs/btrfs/export.c | 25 +- fs/btrfs/extent-tree.c | 50 ++- fs/btrfs/extent_io.c | 4 +- fs/btrfs/file-item.c | 5 +- fs/btrfs/file.c | 27 +- fs/btrfs/free-space-cache.c | 968 ++++++++++++++++++++++++++----------------- fs/btrfs/free-space-cache.h | 48 ++- fs/btrfs/inode-map.c | 428 +++++++++++++++++++- fs/btrfs/inode-map.h | 13 + fs/btrfs/inode.c | 282 +++++++------ fs/btrfs/ioctl.c | 22 +- fs/btrfs/relocation.c | 27 +- fs/btrfs/transaction.c | 13 +- fs/btrfs/tree-log.c | 54 ++-- fs/btrfs/xattr.c | 8 +- 19 files changed, 1402 insertions(+), 634 deletions(-)