Lines Matching refs:defrag
97 struct inode_defrag *defrag) in __btrfs_add_inode_defrag() argument
110 ret = __compare_inode_defrag(defrag, entry); in __btrfs_add_inode_defrag()
120 if (defrag->transid < entry->transid) in __btrfs_add_inode_defrag()
121 entry->transid = defrag->transid; in __btrfs_add_inode_defrag()
122 if (defrag->last_offset > entry->last_offset) in __btrfs_add_inode_defrag()
123 entry->last_offset = defrag->last_offset; in __btrfs_add_inode_defrag()
128 rb_link_node(&defrag->rb_node, parent, p); in __btrfs_add_inode_defrag()
129 rb_insert_color(&defrag->rb_node, &root->fs_info->defrag_inodes); in __btrfs_add_inode_defrag()
152 struct inode_defrag *defrag; in btrfs_add_inode_defrag() local
167 defrag = kmem_cache_zalloc(btrfs_inode_defrag_cachep, GFP_NOFS); in btrfs_add_inode_defrag()
168 if (!defrag) in btrfs_add_inode_defrag()
171 defrag->ino = btrfs_ino(inode); in btrfs_add_inode_defrag()
172 defrag->transid = transid; in btrfs_add_inode_defrag()
173 defrag->root = root->root_key.objectid; in btrfs_add_inode_defrag()
182 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_add_inode_defrag()
184 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
186 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_add_inode_defrag()
198 struct inode_defrag *defrag) in btrfs_requeue_inode_defrag() argument
211 ret = __btrfs_add_inode_defrag(inode, defrag); in btrfs_requeue_inode_defrag()
217 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_requeue_inode_defrag()
267 struct inode_defrag *defrag; in btrfs_cleanup_defrag_inodes() local
274 defrag = rb_entry(node, struct inode_defrag, rb_node); in btrfs_cleanup_defrag_inodes()
275 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in btrfs_cleanup_defrag_inodes()
287 struct inode_defrag *defrag) in __btrfs_run_defrag_inode() argument
298 key.objectid = defrag->root; in __btrfs_run_defrag_inode()
310 key.objectid = defrag->ino; in __btrfs_run_defrag_inode()
324 range.start = defrag->last_offset; in __btrfs_run_defrag_inode()
327 num_defrag = btrfs_defrag_file(inode, NULL, &range, defrag->transid, in __btrfs_run_defrag_inode()
336 defrag->last_offset = range.start; in __btrfs_run_defrag_inode()
337 btrfs_requeue_inode_defrag(inode, defrag); in __btrfs_run_defrag_inode()
338 } else if (defrag->last_offset && !defrag->cycled) { in __btrfs_run_defrag_inode()
344 defrag->last_offset = 0; in __btrfs_run_defrag_inode()
345 defrag->cycled = 1; in __btrfs_run_defrag_inode()
346 btrfs_requeue_inode_defrag(inode, defrag); in __btrfs_run_defrag_inode()
348 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
355 kmem_cache_free(btrfs_inode_defrag_cachep, defrag); in __btrfs_run_defrag_inode()
365 struct inode_defrag *defrag; in btrfs_run_defrag_inodes() local
380 defrag = btrfs_pick_defrag_inode(fs_info, root_objectid, in btrfs_run_defrag_inodes()
382 if (!defrag) { in btrfs_run_defrag_inodes()
392 first_ino = defrag->ino + 1; in btrfs_run_defrag_inodes()
393 root_objectid = defrag->root; in btrfs_run_defrag_inodes()
395 __btrfs_run_defrag_inode(fs_info, defrag); in btrfs_run_defrag_inodes()