Btrfs: dirindex optimizations
[linux-2.6-block.git] / fs / btrfs / super.c
index 4fd2b168b2c46ce85c3f826e453ca1084d9592a9..d4ee78046b867d67d1c3e23e87516acab9e4f27c 100644 (file)
@@ -482,6 +482,11 @@ static int btrfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
                item = leaf->items + slot;
                if (btrfs_disk_key_objectid(&item->key) != key.objectid)
                        break;
+               if (btrfs_disk_key_offset(&item->key) >
+                   root->fs_info->highest_inode) {
+printk("stopping at highest inode %Lu\n", root->fs_info->highest_inode);
+                       break;
+               }
                if (btrfs_disk_key_type(&item->key) != BTRFS_DIR_INDEX_KEY)
                        continue;
                if (btrfs_disk_key_offset(&item->key) < filp->f_pos)